Android 耳机按键与拔插监听
来源:互联网 发布:网络方案的初步设计 编辑:程序博客网 时间:2024/06/02 08:12
按键监听:
public class MyMediaButtonReceiver extends BroadcastReceiver{ private AudioManager mAudioManger; @Override public void onReceive(Context context, Intent intent) { String intentAction = intent.getAction(); if (AudioManager.ACTION_AUDIO_BECOMING_NOISY.equals(intentAction)) {//拔出耳机,将声音设为最大声音的1/3 mAudioManger = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE); int max = mAudioManger.getStreamMaxVolume(AudioManager.STREAM_MUSIC); mAudioManger.setStreamVolume(AudioManager.STREAM_MUSIC, max/3, AudioManager.FLAG_PLAY_SOUND|AudioManager.FLAG_SHOW_UI); } else if (Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) { KeyEvent event = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); if (event == null) { return; } int keycode = event.getKeyCode(); if(event.getAction()==KeyEvent.ACTION_DOWN){//只监听抬起事件 abortBroadcast(); return; } switch (keycode) { case KeyEvent.KEYCODE_MEDIA_STOP: break; case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: case KeyEvent.KEYCODE_HEADSETHOOK: break; case KeyEvent.KEYCODE_MEDIA_NEXT: break; case KeyEvent.KEYCODE_MEDIA_PREVIOUS: break; case KeyEvent.KEYCODE_MEDIA_PAUSE: } break; case KeyEvent.KEYCODE_MEDIA_PLAY: break; } abortBroadcast(); } }}
在manifest中注册广播接受器
<receiver android:name=".tools.MyMediaButtonReceiver" android:exported="true" > <intent-filter android:priority="1000"> <action android:name="android.media.AUDIO_BECOMING_NOISY"/> <action android:name="android.intent.action.MEDIA_BUTTON" /> </intent-filter> </receiver>
最后在service中向AudioManger中注册此广播,否则不会收到广播
mAudioManager =(AudioManager)getSystemService(Context.AUDIO_SERVICE); //构造一个ComponentName,指向MediaoButtonReceiver类 mbCN = new ComponentName(getPackageName(),MyMediaButtonReceiver.class.getName()); //注册一个MedioButtonReceiver广播监听 mAudioManager.registerMediaButtonEventReceiver(mbCN);
耳机插入监听:必须是动态注册,否则收不到广播
IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_HEADSET_PLUG); registerReceiver(mBroadcast,filter);
0 0
- Android 耳机按键与拔插监听
- android 监听耳机插拔
- wangchenfeng android 监听耳机插拔
- android耳机插拔的监听
- android+耳机插拔和耳机按键检测
- 监听耳机拔插状态
- iOS 监听耳机插拔
- Android 多媒体控制 来电监听-耳机插拔监听-耳机按钮监听-MediaSession-MediaStyle
- android耳机插拔事件
- android 耳机插拔流程
- Android如何监听蓝牙耳机和有线耳机的插拔
- android 耳机插拔检测(kernel)
- Android 耳机插拔处理流程
- Android耳机按键监听
- 001 正式进入android分析hal层以上 apk监听耳机插拔事件
- 【audio】耳机插拔/线控按键识别流程
- 耳机插拔流程
- 耳机插拔流程
- Android开发环境的搭建遇到的问题和解决
- MySQL之逻辑查询处理流程
- kubernetes 1.3 的安装和集群环境部署
- mysql命令2
- ViewPager、ViewPager和Fragment组合使用的基本用法
- Android 耳机按键与拔插监听
- bat面试内容
- 算法竞赛入门经典3.5 谜题UVa455
- 关于火狐和IE下select控制div
- POJ 2236(简单并查集)
- HDOJ-1241 Oil Deposits
- Where Amazing Happens(打表)
- C++ STL 之 lower_bound and upper_bound
- 海量数据相似度计算之simhash和海明距离