博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android线控的使用
阅读量:7243 次
发布时间:2019-06-29

本文共 2520 字,大约阅读时间需要 8 分钟。

实现方式一:只能在程序为前台时监控

在Activity中即可监听

@Overridepublic boolean onKeyUp(int keyCode, KeyEvent event) {    Log.i("MainActivity-onKeyUp", "" + keyCode);    switch (keyCode) {        case KeyEvent.KEYCODE_HEADSETHOOK:            Toast.makeText(MainActivity.this, "Pause_Up", Toast.LENGTH_SHORT).show();            return false;    }    return super.onKeyUp(keyCode, event);}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {    Log.i("MainActivity-onKeyDown", "" + keyCode);    switch (keyCode) {        case KeyEvent.KEYCODE_HEADSETHOOK:            Toast.makeText(MainActivity.this, "Pause_Down", Toast.LENGTH_SHORT).show();            return false;    }    return super.onKeyUp(keyCode, event);}

实现方式二:前后台均可

1.自定义Receiver
public class EarphoneReceiver extends BroadcastReceiver {    public EarphoneReceiver() {    }    @Override    public void onReceive(Context context, Intent intent) {        KeyEvent event = intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);        if (event.getAction() == KeyEvent.ACTION_UP) {             TODO: 2016/2/18 0018 按下时操作            Message msg = Message.obtain();            msg.what = 100;            handler.sendMessage(msg);        }    }    Handler handler = new Handler() {        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            switch (msg.what) {                case 100:                     TODO: 2016/2/18 0018  操作                    EarphoneButtonHelper.EarphoneListener listener = EarphoneButtonHelper.getInstance().getListener();                    if (listener != null) {                        listener.onClick();                    }                    break;            }        }    };}

AndroidManifast.xml中注册

2.注册/取消Receiver
/** * 取消广播接收器 * @param context */public void unrigisterReceiver(Context context) {    AudioManager mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);    ComponentName name = new ComponentName(context.getPackageName(), EarphoneReceiver.class.getName());    mAudioManager.unregisterMediaButtonEventReceiver(name);}/** * 注册广播接收器 * @param context */public void registerReceiver(Context context) {    AudioManager mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);    ComponentName name = new ComponentName(context.getPackageName(), EarphoneReceiver.class.getName());    mAudioManager.registerMediaButtonEventReceiver(name);}

其他

参考文章

转载于:https://www.cnblogs.com/qingjian/p/5200642.html

你可能感兴趣的文章
后台前端框架
查看>>
Android书签
查看>>
隐藏Apache 、ngnix 、wordpress的版本信息
查看>>
Python排序算法的实现
查看>>
java基础:String
查看>>
我的友情链接
查看>>
命令的学习(继续学习补充)
查看>>
web服务器负载均衡解决方案
查看>>
动态规划-矩阵链乘
查看>>
linux awk命令详解
查看>>
MySQL备份和还原系列二:cp冷备份 和 mysqldump
查看>>
如何在Linux python中使用tab补全
查看>>
网络设备配置与管理----调试Cisco Catalyst交换机
查看>>
Java中的随机类Random
查看>>
浅析计算机的原理(一)
查看>>
jmc、jcmd和jfr介绍
查看>>
利用LVM增加根分区大小
查看>>
kafka 文档 (一)
查看>>
zookeeper学习之zkclient事件监听<十>
查看>>
【笔记】如何做好一场技术演讲——观点烙刻
查看>>