如何在我启动服务时接受音量键的广播监听器

问题描述 投票:0回答:1

我通过点击按钮开始我的服务,并通过停止按钮停止我的服务。

我的服务类如下

public class Services extends Service {

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public int onStartCommand (Intent intent,int flags, int startId){
        Log.d("Services","Started...");
        return START_NOT_STICKY;
    }
    @Override
    public void onDestroy () {
        super.onDestroy();
        Log.d("Services","Stoped...");
    }
}

我的Receiver课程如下

public class Reciever extends BroadcastReceiver {

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

        //check the intent something like:
        if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
            KeyEvent event = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
            if (KeyEvent.KEYCODE_VOLUME_UP== event.getKeyCode()) {
               Log.d("Volume","Down");
            }
        }
    }

}
java android
1个回答
0
投票

首先删除清单中的互联网过滤器然后。在您开始服务的Activity,以及当您停止服务活动时,注册您的BroadcastReciverand,停止取消注册BroadcastRecived

寄存器

IntentFilter filter = new IntentFilter();
filter.addAction("SOME_ACTION");
filter.addAction("SOME_OTHER_ACTION");

receiver = new MyBroadcastReceiver();
registerReceiver(receiver, filter);

注销

if (receiver != null) {
   unregisterReceiver(receiver);
   receiver = null;
}
© www.soinside.com 2019 - 2024. All rights reserved.