2011-06-24 97 views
4

有沒有方法可以在不顯示允許用戶發起呼叫的用戶界面的情況下呼叫聯繫人?所以當我點擊一個按鈕時,聯繫人號碼就會立即被撥打,就像當我去電話中最後一次通話時點擊某人時,他們立即被呼叫。不使用UI的呼叫

我使用的是現在的代碼是:

try { 
    Intent intent = new Intent(Intent.CALL_ACTION); 
    intent.setData(Uri.parse("tel:" + number)); 
    startActivity(intent); 
} catch (Exception e) { 
    Log.e("SampleApp", "Failed to invoke call", e); 
} 

回答

4

添加權限android.permission.CALL_PHONE的清單,並改變Intent.CALL_ACTIONIntent.ACTION_CALL

+0

我接受這個答案,因爲這是第一個,但所有三個答案都是正確的。 ACTION_CALL起作用,ACTION_DIAL不起作用。謝謝! – erdomester

+0

不適用於android 7.0,任何syggestion –

+0

在運行時請求'android.permission.CALL_PHONE'?什麼不工作? –

1
private void call() {  
    try {  
     Intent callIntent = new Intent(Intent.ACTION_CALL);  
     callIntent.setData(Uri.parse("tel:123456789"));  
     startActivity(callIntent);  
    } catch (ActivityNotFoundException e)  {  
     Log.e("helloandroid dialing example", "Call failed", e);  
    } 

AndroidManifest.xml中

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

您發佈的代碼不應該工作... 沒有CALL_ACTION,請改用ACTION_CALL。

+0

我用這樣的sg,我從網上覆制粘貼的代碼是錯誤的,但這不是問題:)我使用的代碼(我不在家,所以我不能發佈我的代碼)工作正常。 – erdomester

+0

所以,你應該撥打號碼。是不是你的問題 - 「注意:這個意圖不能用於撥打緊急號碼,但是應用程序可以使用ACTION_DIAL撥打緊急號碼。」 – piotrpo

0
Intent intent = new Intent(Intent.CALL_ACTION); 

應該

Intent intent = new Intent(Intent.ACTION_CALL); 

這是我的完整代碼:

Intent intentcall = new Intent(); 
    intentcall.setAction(Intent.ACTION_CALL); 
    intentcall.setData(Uri.parse("tel:" + phoneNumber)); 
    startActivity(intentcall);