如何创建可以用拨号盘启动的应用程序

时间:2012-04-19 11:24:34

标签: android


我想知道如何使用Dialpad中的一些代码启动我的Android应用程序。就像你     的#3214789650# 从你的银河系它启动angryGps应用程序 如何实现?

感谢。

2 个答案:

答案 0 :(得分:5)

试试这个。使用广播接收器来收听拨出电话号码:

<强>的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 :(得分:1)

您正在寻找的是联系人应用程序的一部分,虽然很可能每个制造商的实施都相同,但我不确定这一点。

启动新活动的意图由文件SpecialCharSequenceMgr中的函数 handleSecretCode 传递。代码段是

    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#*#*。