Я создаю приложение Android, которое обнаруживает нажатие собственной кнопки ie, подключенной к разъему мобильного аудио.
Я могу зафиксировать нажатие кнопки, если приложение находится на переднем плане, но не на заднем плане.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
Toast.makeText(CustomPadActivity.this, "BUTTON clicked", Toast.LENGTH_SHORT).show();
return true;
}
return super.onKeyDown(keyCode, event);
}
Я попытался использовать широковещательный приемник с действием android.intent.action.MEDIA_BUTTON
, но это не захватывает нажатие кнопки вообще.
Манифест:
<receiver android:name=".MyReceiver" android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
И мой Класс получателя:
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "BUTTON clicked", Toast.LENGTH_SHORT).show();
}
}
Я где-то читаю, мне нужно сыграть кусок музыки c, если я хочу запечатлеть нажатие кнопки. Приложение не является аудиоплеером. Я не хочу воспроизводить звук в приложении.
Я просто пытаюсь зафиксировать нажатие кнопки ie, когда мое приложение находится в фоновом режиме.