Android线控的使用
2016-02-19 12:47
691 查看
实现方式一:只能在程序为前台时监控
在Activity中即可监听@Override public 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); } @Override public 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.自定义Receiverpublic 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中注册
<receiver android:name=".EarphoneReceiver"> <intent-filter android:priority="1000"> <action android:name="android.intent.action.MEDIA_BUTTON" /> </intent-filter> </receiver>
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); }
其他
参考文章Android耳机线控详解,蓝牙耳机按钮监听
相关文章推荐
- Android调用系统相机以及自定义相机
- android notes
- android—匿名binder
- Android_获取手机IP和MAC地址
- Android基础--Android Studio中使用Gradle发布aar项目到JCenter仓库
- android persistent属性研究
- android:自定义HorizontalScrollView实现qq侧滑菜单 标签: HorizontalScrollView自定义viewqq侧滑菜单 2016
- Android 开源项目分类汇总
- 【Android学习笔记】判断字符串的字符数
- Android--控件属性汇总
- android 查看 当前activity
- Android高斯模糊
- Android一种高效压缩图片的方法
- android四大组件--ContentProvider详解
- Android Handle机制
- Android 信息分享实现
- Android性能优化案例研究(上)
- activity state save
- Android Framework的启动
- Android实现图片异步加载并缓存到本地