Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安卓:当我的应用程序在后台时,我如何检测自拍按钮的点击_Java_Android_Kotlin_Broadcastreceiver - Fatal编程技术网

Java 安卓:当我的应用程序在后台时,我如何检测自拍按钮的点击

Java 安卓:当我的应用程序在后台时,我如何检测自拍按钮的点击,java,android,kotlin,broadcastreceiver,Java,Android,Kotlin,Broadcastreceiver,我正在构建一个Android应用程序,它检测连接到移动音频插孔的自拍棒按钮点击 如果应用程序在前台,而不是后台,我可以捕捉到按钮的点击 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_UP: Toast.makeText(CustomPadActivity.this, "BUT

我正在构建一个Android应用程序,它检测连接到移动音频插孔的自拍棒按钮点击

如果应用程序在前台,而不是后台,我可以捕捉到按钮的点击

@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);
}
我尝试将广播接收器与action
android.intent.action.MEDIA_按钮一起使用,但它根本无法捕获按钮的点击

清单:

<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();
    }

}
我在某个地方读到,如果我想捕捉按钮的点击,我需要播放一段音乐。该应用程序不是音频播放器。我不想在应用程序中播放音频

当我的应用程序在后台时,我正试图捕捉自拍棒按钮的点击。

这当然是

@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);
}
onKeyEvent只能是活动中的回调

服务根本不接收KeyEvent回调

将意图添加到Activtiy中的AndroidManifest

<intent-filter>
    <action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>

活动中的“android.intent.action.MEDIA_按钮”意图过滤器在应用程序处于后台时如何帮助我捕获?我错了,它真的应该在接收器中,如果(intent.getAction().equals(intent.action_MEDIA_按钮))//做一些事情已经做了,没有工作,我的问题中也提到了同样的问题。您是否尝试过向服务注册BroadcastReceiver?然后用onReceive捕捉它。RegisterReceiver(myReceiver,新的意向过滤器(“android.media.VOLUME\u CHANGED\u ACTION”);嘿,我尝试了你提供的链接,这是一种工作的一部分。无论我设置的优先级是什么,当我点击“粘贴”按钮时,android操作系统都会获得第一优先级,但如果我立即点击按钮两次,那么我的应用程序就能够捕获第二次点击。即使将意向过滤器优先级设置为999或任何其他数字也帮不了我。