如果用戶安裝了替代撥號程序(即在其電話上安裝了多個撥號程序),隱式意圖會要求在它們之間做出選擇。安卓顯式意圖代碼
我的問題是,我希望爲代碼中的默認撥號程序設置一個明確的意圖,因爲我不希望顯示此選擇,而是將所有操作都轉發給內置/默認撥號程序,無論這些選項可能如何。
這是我目前(隱含的)意圖代碼:
Log.i(TAG, "Sending: "+Number);
Intent dialIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+ Number));
//called from outside of an android.app.Activity Context
dialIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(dialIntent);
我怎麼能強迫一個明確的意圖是什麼?
我想這一點 - 但我認爲我是在錯誤的軌道這裏...
dialIntent.setComponent((new ComponentName("com.android.internal.telephony","com.android.internal.telephony.ITelephony.class")));
非常感謝。
我的應用程序發送USSD代碼,而不是需要用戶參與的語音產品,因爲這樣的透明背景USSD實施是必須的。發現它很難解決我認爲會是一個微不足道的問題)) – 2012-07-12 08:16:32
這是我認爲可以接受的一種情況作爲例外情況:) 然後,您的擔心不是使用哪個撥號程序,而是*它被無聲地使用*。 (實際上我不確定是否所有的替代撥號器都支持USSD,但如果他們認爲能夠達到目的,我就會這麼做)。所以我的答案仍然存在:建議您的用戶設置一些默認撥號程序(以避免惱人的選擇器),並確保使用其他撥號程序進行測試。如果將來的Android版本可以讓您根據每個應用設置默認處理程序,我不會感到驚訝。 – Cheezmeister 2012-08-01 01:08:27