1

番号をダイヤルしてアプリケーションを起動しようとしていますが、同じことを行うことに成功しました。

私はこのコードでこのアクションを実行しています:

public class OutgoingCallBroadcastReceiver extends BroadcastReceiver 
{
    String diledNumber;

    @Override
    public void onReceive(Context context, Intent intent) 
    {
        diledNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);

        if(diledNumber.equals("1234"))
        {
            Intent appIntent = new Intent(context, MainActivity.class);
            appIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(appIntent);
        }
    }
}

問題: 私の問題は、アプリケーションを起動した後、呼び出し画面がバックグラウンドになり、アプリケーションが前面で開始されることです。しかし、私はその通話を切断したいです (アプリケーションを起動するために 1234 にダイヤルしました。アプリの起動後、その通話は切断されるはずです)。あなたの助けは非常に高く評価されます。ありがとうございました

4

1 に答える 1

4

if ブロックで使用setResultData(null)して、レシーバーからのブロードキャストをキャンセルします。

以下のコードを参照してください

if(diledNumber.equals("1234")) {
     Intent appIntent = new Intent(context, MainActivity.class);
     appIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
     context.startActivity(appIntent);
     // Cancel our call.
     setResultData(null);
}

順序付きブロードキャストの処理について詳しく読む

于 2013-08-27T10:24:19.373 に答える