Android,是否可以从拨号器运行应用程序?

时间:2012-02-22 07:15:31

标签: android

当用户在拨号器中输入# 1234 #等代码时,我需要(如果可能的话)为我的项目添加一项功能。我不确定这是可能的。目前,当我从应用程序文件夹中为我的应用程序共进午餐时,它会启动,但只是为了好玩,我想知道我可以用代码在午餐吗?

3 个答案:

答案 0 :(得分:6)

您可以通过拨号程序启动应用程序活动类,但是您的应用程序应该在后台运行。为此你应该实现一个扩展到BroadcastReceiver的类。请遵循此参考代码。

public class Example extends BroadcastReceiver 
{

    @Override
    public void onReceive(Context context, final Intent intent) {

      if (intent.getAction().equals(android.intent.action.NEW_OUTGOING_CALL)) {
       String phoneNumber = intent.getExtras().getString( android.intent.extra.PHONE_NUMBER );

         if(phoneNumber.equals("#1234#")) { 
            Intent intent1 = new Intent(context , YourActivity.class);
            intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
            context.startActivity(intent1);
       }

      }

    }

} 

答案 1 :(得分:1)

Priyank接受的答案是正确的。我只是想在Intent类的代码中指出一些更正

@Override
public void onReceive(Context context, final Intent intent) {
    if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)){
        String phoneNumber = intent.getExtras().getString(Intent.EXTRA_PHONE_NUMBER);

        if(phoneNumber.equals("#1234#")){
            Intent intent1 = new Intent(context, YourActivity.class);
            intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent1);
        }

    }
}

答案 2 :(得分:0)

@Override
public void onReceive(Context context, final Intent intent) {

    if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
        String phoneNumber = intent.getExtras().getString(Intent.EXTRA_PHONE_NUMBER);

        if (phoneNumber.equals("#1234#")) {
            Intent intent1 = new Intent(context, YourActivity.class);
            intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent1);
            setResultData(null);
        }

    }

}