1

私は、非常に多くの人が信頼しているように見える「KeyEvent」メソッドを使用して、電話に自動的に応答する手段に取り組んできました。

この方法は、シミュレーターでは機能しますが、実際のデバイスでは機能しません。

私が使用しているコードは以下のとおりです。

  Intent buttonDown = new Intent(Intent.ACTION_MEDIA_BUTTON);
  buttonDown.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HEADSETHOOK));
  ctx.sendOrderedBroadcast(buttonDown, "android.permission.CALL_PRIVILEGED");

  Intent buttonUp = new Intent(Intent.ACTION_MEDIA_BUTTON);
  buttonUp.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK));
  ctx.sendOrderedBroadcast(buttonUp, "android.permission.CALL_PRIVILEGED");

  Intent headSetUnPluggedintent = new Intent(Intent.ACTION_HEADSET_PLUG);
  headSetUnPluggedintent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
  headSetUnPluggedintent.putExtra("state", 1); // 0 = unplugged  1 = Headset with microphone 2 = Headset without microphone
  headSetUnPluggedintent.putExtra("name", "Headset");
  // TODO: Should we require a permission?
  ctx.sendOrderedBroadcast(headSetUnPluggedintent, "android.permission.CALL_PRIVILEGED");

シミュレーターでは、答えの「ボタン」が機能しているように見えます。残念ながら、実際の電話では、送信されている KeyEvent が完全に無視されているように見えます。

Android 2.3.* でこのアクションを実行する信頼できる方法を見つけた人はいますか?

4

1 に答える 1

0

ヘッドセット ボタン イベントの後に偽のヘッドセット接続イベントを送信しています。まだ接続されていないヘッドセットが通話に応答するにはどうすればよいですか? 最初に偽のヘッドセットを接続してから、偽のボタンを押して送信します。わたしにはできる。

于 2014-02-09T16:54:15.263 に答える