2012-04-19 45 views
3


我想知道如何使用撥號鍵盤啓動我的android應用程序。就像你 #3214789650# 從你的銀河它啓動angryGps應用程序。
如何實現?如何創建可以使用撥號盤啓動的應用程序

謝謝。

+0

從來沒有嘗試過,但我認爲,這將使用一些廣播接收器來完成。 – noli 2012-04-19 11:26:30

+0

在#號之後加上*以上號碼 – 2012-04-19 11:32:56

+0

@awais您嘗試使用'ACTION_NEW_OUTGOING_CALL' BroadcastReceiver? – 2012-04-19 11:33:31

回答

5

嘗試this.use廣播接收機聽呼出號碼:

的Manifest.xml

uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/> 


<receiver android:name=".OutgoingCallReceiver"> 
<intent-filter> 
<action android:name="android.intent.action.NEW_OUTGOING_CALL"/> 
</intent-filter> 
</receiver> 

OutgoingCallReceiver.java

public class OutgoingCallReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     // TODO Auto-generated method stub 
     Bundle bundle = intent.getExtras(); 
     if (null == bundle) 
      return; 
     // outgoingNumber=intent.getStringExtra(Intent.ACTION_NEW_OUTGOING_CALL); 
     String phoneNubmer = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); 
     //START APPLICATION HERE 
    } 
} 
+1

看起來不錯,但有沒有辦法來防止撥號盤在你的'BroadcastReceiver'被調用後試圖撥打這個「電話號碼」? – 2012-04-19 11:49:17

+1

@TonythePony在你的接收器中調用:setResultData(null); – 2012-04-19 12:09:52

+0

太棒了,但我相信這隻適用於有序廣播,對嗎? – 2012-04-19 12:12:14

1

你正在尋找的是什麼部分聯繫人應用程序和儘管它的實現很可能是相同的對於每個製造商,但我不確定這一點。

開始一個新的活動的目的是通過函數handleSecretCode文件SpecialCharSequenceMgr傳入。該代碼段是

static boolean handleSecretCode(Context context, String input) { 

    // Secret codes are in the form *#*#<code>#*#* 

    int len = input.length(); 

    if (len > 8 && input.startsWith("*#*#") && input.endsWith("#*#*")) { 
     Intent intent = new Intent(Intents.SECRET_CODE_ACTION, 
       Uri.parse("android_secret_code://" + input.substring(4, len - 4))); 
     context.sendBroadcast(intent); 

你需要做的就是註冊廣播接收器的意圖行動Intents.SECRET_CODE_ACTION和URI android_secret_code://「代碼」,並在廣播接收器可發射你的申請。

你也可以看到一些應用程序已經實現了,其中一個在模擬器上工作的代碼是*#*#4636#*#*。

+0

謝謝Dinesh :),實施後,我會讓你知道。 – 2012-04-19 14:00:56

+0

舉個例子,你可以看到[這裏](http://source-android.frandroid.com/packages/apps/Settings/src/com/android/settings/TestingSettingsBroadcastReceiver.java)。清單文件[here](http://source-android.frandroid.com/packages/apps/Settings/AndroidManifest.xml)。希望它可以幫助你。 – dinesh 2012-04-20 05:05:19

相關問題