2012-10-14 53 views
-1

我有一個功能,我的應用程序直接調用一個電話號碼,而無需通過android dallier, 一切工作正常在android 2.2和2.3, ,但現在,因爲我升級了我的手機4.1, 調用的意圖是「ACTION_CALL」和「ACTION_DIAL」 還是到撥號畫面,並等待用戶點擊通話按鈕ACTION_CALL打開撥號器在Android 4.1果凍豆

以下是代碼塊負責直接撥打電話號碼:

void makeCall(Context context,String number){ 
Intent callIntent = new Intent(Intent.ACTION_CALL); 
// Add the additional flags required for staring new Activity. 
callIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
callIntent.setData(Uri.parse("tel:"+number)); 
context.startActivity(callIntent); 
} 

我也已經在清單

<uses-permission android:name="android.permission.CALL_PRIVILEGED" /> 
<uses-permission android:name="android.permission.CALL_PHONE" /> 

設置呼叫權限,有沒有其他人遇到類似的問題?

+0

除非您是固件的一部分,否則無法保留'CALL_PRIVILEGED'。除此之外,嘗試擺脫'FLAG_ACTIVITY_NEW_TASK'。如果這些都不起作用,請回複評論。 – CommonsWare

+0

Heyy感謝您的評論,刪除CALL_PRIVILEGED沒有幫助,並且我需要FLAG_ACTIVITY_NEW_TASK,因爲當我的應用沒有任何活動實際運行時,我從後臺開始呼叫活動。 但我意識到,如果被叫的電話號碼存在於電話簿中,直接撥打電話,如果不是撥號器打開,那解決了我的問題,謝謝:)(可能是從Android 4.1開始的安全功能) – Karan

回答

0

從android 4.1開始,似乎android把「9999999991」,「9999999992」,「9999999993」作爲我的測試用的虛擬電話號碼,而正常號碼直接撥號上述號碼顯示在撥號程序中。