Я пишу приложение для Android для автоматического ответа на входящие звонки. Я использую приемник и пытаюсь отправить событие ACTION_MEDIA_BUTTON, когда телефон звонит.ACTION_MEDIA_BUTTON не работает на реальном устройстве
Все работает отлично на эмуляторе - Когда телефон звонит, он фактически отвечает на звонок автоматически.
Но когда я пытаюсь использовать его на устройстве, он просто не работает (HTC Legend).
Это код:
// trigger on buttonUp instead of buttonDown
Intent buttonDown = new Intent(Intent.ACTION_MEDIA_BUTTON);
buttonDown.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HEADSETHOOK));
context.sendOrderedBroadcast(buttonDown , "android.permission.CALL_PRIVILEGED");
// trigger on buttonUp instead of buttonDown
Intent buttonUp = new Intent(Intent.ACTION_MEDIA_BUTTON);
buttonUp.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK));
context.sendOrderedBroadcast(buttonUp, "android.permission.CALL_PRIVILEGED");
И это код приемника в файле XML:
<receiver android:name=".PhoneOutgoingCallReceiver" android:enabled="true">
<intent-filter android:priority="0">
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
<receiver android:name=".PhoneIncomingCallReceiver" android:enabled="true">
<intent-filter android:priority="0">
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.PHONE_STATE" />
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>`
Кто знает, почему он не работает на реальном устройстве? Какая разница?