0

以下のコードを使用して着信コールの状態を取得するために BroadcastReceiver を実装しました

public class callReceiver extends BroadcastReceiver {
    Context mContext;

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

           String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
            if(state.equals(TelephonyManager.EXTRA_STATE_RINGING))
            {
                Toast.makeText(mContext, "Phone Is Ringing", Toast.LENGTH_LONG).show();
               // Your Code
           }
    }
}

これは着信コールを示していますが、近接センサーを使用して値を取得し、センサー値が変更されている間にコールを選択したいのですが、SensorEventListener を実装するアクティビティを使用できますが、ブロード casr レシーバーでこれらの値を使用する方法はありません。

4

1 に答える 1

0

ブロードキャスト レシーバーは 5 秒を超える処理を許可しません。また、onReceive メソッドの実行が終了すると、コンテキストが破棄されます。実際には、近接センサー用の受信機を用意し、onReceive メソッド内でテレフォニー マネージャーの通話状態を確認できます。

または、上記の受信機でサービスを開始し、そこに近接センサーを登録することもできます。

于 2014-11-18T10:49:56.143 に答える