- 浏览: 2964318 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (893)
- android (110)
- iphone (198)
- java (79)
- JavaScript手册-目录 (9)
- JavaScript手册-Array (19)
- JavaScript手册-Boolean (5)
- JavaScript手册-Date (50)
- JavaScript手册-Math (30)
- JavaScript手册-Number (14)
- JavaScript手册-RegExp (7)
- JavaScript手册-String (38)
- JavaScript手册-全局函数 (8)
- JavaScript实用脚本 (7)
- Others (21)
- java-jpcap (7)
- java-thread (1)
- ibm文章 (3)
- classloader (2)
- java-filter (2)
- 运行环境 (33)
- java-正则 (2)
- oracle (1)
- linux-shell (26)
- wap (1)
- sqlite (3)
- wow (1)
- jvm (1)
- git (5)
- unity3d (29)
- iap (2)
- mysql (23)
- nginx (14)
- tomcat (9)
- apache (2)
- php (1)
- ubuntu (40)
- rsa (1)
- golang (21)
- appstore (5)
- sftp (2)
- log4j (2)
- netty (18)
- 测试工具 (6)
- memcache (5)
- 设计模式 (1)
- centos (8)
- google_iab (5)
- iOS专题 (4)
- mac (10)
- 安装配置帮助手册 (2)
- im4java_graphicsmagick (5)
- inotify-tools (1)
- erlang (6)
- 微信支付 (1)
- redis (8)
- RabbitMQ (5)
最新评论
-
heng123:
Netty视频教程https://www.douban.com ...
netty4.0.23 初学的demo -
maotou1988:
使用Netty进行Android与Server端通信实现文字发 ...
netty4.0.23 初学的demo -
码革裹尸:
非常感谢,正好用上
android 呼入电话的监听(来电监听) -
rigou:
提示的/222.177.4.242 无法链接到ip地址,是什 ...
通过 itms:services://? 在线安装ipa ,跨过app-store -
duwanbo:
GridView与数据绑定
使用线控耳机来操控应用功能
实现原理:通过广播拦截来实现。
(一)定义1个广播拦截器,用来拦截线控耳机按键产生的广播事件。
import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.KeyEvent; public class MediaButtonReceiver extends BroadcastReceiver { /** * Handler */ private Handler handler; /** * 构造器. * @param handler */ public MediaButtonReceiver(Handler handler) { this.handler = handler; } @Override public void onReceive(Context context, Intent intent) { boolean isActionMediaButton = Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction()); if(!isActionMediaButton) return; KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); if(event==null) return; boolean isActionUp = (event.getAction()==KeyEvent.ACTION_UP); if(!isActionUp) return; int keyCode = event.getKeyCode(); long eventTime = event.getEventTime()-event.getDownTime();//按键按下到松开的时长 Message msg = Message.obtain(); msg.what = 100; Bundle data = new Bundle(); data.putInt("key_code", keyCode); data.putLong("event_time", eventTime); msg.setData(data); handler.sendMessage(msg); //终止广播(不让别的程序收到此广播,免受干扰) abortBroadcast(); } }
(二)在主程序的处理:
(1)定义并注册广播服务
//初始化Handler对象 MyHandler handler = new MyHandler(); //初始化媒体(耳机)广播对象. MediaButtonReceiver mediaButtonReceiver = new MediaButtonReceiver(handler); //注册媒体(耳机)广播对象 IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON); intentFilter.setPriority(100); registerReceiver(mediaButtonReceiver, intentFilter);
(2)定义MyHandler和处理广播发回的消息:
private class MyHandler extends Handler{ @Override public void handleMessage(Message msg) { int what = msg.what; switch(what){ case 100://单击按键广播 Bundle data = msg.getData(); //按键值 int keyCode = data.getInt("key_code"); //按键时长 long eventTime = data.getLong("event_time"); //设置超过2000毫秒,就触发长按事件 boolean isLongPress = (eventTime>2000); switch(keyCode){ case KeyEvent.KEYCODE_HEADSETHOOK://播放或暂停 case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE://播放或暂停 playOrPause(); break; //短按=播放下一首音乐,长按=当前音乐快进 case KeyEvent.KEYCODE_MEDIA_NEXT: if(isLongPress){ fastNext(1);//自定义 }else{ playNext();//自定义 } break; //短按=播放上一首音乐,长按=当前音乐快退 case KeyEvent.KEYCODE_MEDIA_PREVIOUS: if(isLongPress){ fastPrevious(1);//自定义 }else{ playPrevious();//自定义 } break; } break; default://其他消息-则扔回上层处理 super.handleMessage(msg); } } }
(3)应用程序退出的时候,别忘了取消注册的广播拦截器。
unregisterReceiver(mediaButtonReceiver);
发表评论
-
Android Fragment 真正的完全解析(下)
2015-03-25 14:30 1085Android Fragment 真正 ... -
Android Fragment 真正的完全解析(上)
2015-03-25 10:14 875Android Fragment 真正的 ... -
Activity的生命周期方法
2015-03-25 09:54 547一:Activity的生命周期方法 Android ... -
Android在layout xml中使用include
2015-03-25 07:28 964在Android的layout样式定义中,可以使 ... -
一个支持圆角的快速ImageView:RoundedImageView
2015-03-07 09:50 11056一个支持圆角的快速ImageView:Rounded ... -
ImageView图片设置
2015-03-05 23:08 917显示任意图像,例如图标。ImageView类可以加载 ... -
ListActivity的onListItemClick不响应的解决办法
2015-03-04 17:57 1076ListActivity的onListItemClic ... -
ListView中有控件隐藏或显示造成的显示错误问题
2015-03-03 23:03 1815ListView中有控件隐藏或显示造成的显示错误问题 ... -
Android中Application类用法
2015-03-03 09:12 965Android中Application类用法 ... -
Android使用Application总结
2015-03-03 09:11 1168Android使用Application ... -
在android中运行java main方法
2015-02-27 10:38 964在android中运行java main方法 ... -
android BitmapFactory.Options
2015-02-19 21:01 988public Bitmap inBi ... -
android 基础demo例子
2015-02-16 21:06 805demoDatas.add(new DemoBe ... -
Android大图片裁剪终极解决方案
2015-02-15 17:08 2132Android大图片裁剪终 ... -
Android_照相机Camera_调用系统照相机返回data为空
2015-02-15 14:17 1263Android_照相机Camera_调用系统照相机返回 ... -
Android: 打印Bundle内容
2015-02-15 14:11 2923Android: 打印Bundle内容 有的时 ... -
android线程、UI、AsyncTask
2015-02-13 18:06 1251本文是转摘的,看过了觉得很好!所以转了过来!如果你想要 ... -
Fragment中ListView的使用
2015-02-06 23:01 2094Fragment中ListView的使用 直接 ... -
在安卓开发时用酷派手机无法打印出应用内的日志的解决方法
2014-12-11 20:39 1170在安卓开发时用酷派手机无法打印出应用内的日志的解决方法 ... -
查看安卓APK文件证书的方法
2014-12-04 10:05 947************************** ...
相关推荐
使用线控耳机来操控应用功能
借助广播来实现单按钮耳机的线控,能够识别单击和双击 代码讲解在我的博客里: http://blog.csdn.net/illidantao/article/details/16847909
苹果线控耳机端电路图,提供给爱好者参考.如有错误请指正.
线控耳机接线 华为耳机 荣耀耳机 荣耀3C-线控耳机:接线图
少有的Apple线控内部电路图。有兴趣了解Apple线控原理的同学可以看看。
嵌入式优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。...可借鉴此优质项目实现复刻,也可以基于此项目进行扩展来开发出更多功能
线控技术(By-Wire),就是由电信号来实现传递转向控制,而不是通过机 械连接装置的硬连接来实现操作。而线控技术早已在现代飞机上得到了普及。 在飞机上,线控技术直接被称之为电传操纵技术(Fly-By-Wire),最早是...
SSS1530A3是3S高度集成的单芯片USB音频控制芯片,支持TypeC线控接听/挂断电话,支持通话功能,支持音量加减功能,解决TypeC耳机兼容性问题,性价比高TypeC耳机线控方案。
耳机插拔的识别,hookkey的用途,详细了解android的耳机相关功能,掌握耳机电路结构
电信设备-线控耳机、移动终端及控制方法.zip
电信设备-MEMS麦克风组件、线控耳机以及移动通信装置.zip
目录介绍通过分析耳机上不同按钮在不同时刻对具有TRRS接口PC设备的麦克风两个声道造成的不同影响来提供耳机线控支持。更具体的实现方式可以转到入门阅读。安装以下两种方式都需要联网,会自动安装依赖包keyboard , ...
[Android应用开发记录-字幕播放器(5)完善]附属工程,源码 1.将操作按钮改成图标方式 2.有电话接入时暂停播放。 3.通过线控按钮控制播放,暂停,上一句歌词,下一句歌词功能。(Android2.2以上版本) 4.拔掉...
本文介绍汽车线控转向技术的发展与应用,很不错的知识,大家一起看下吧。
行业资料-电子功用-双兼容线控耳机控制电路及基于该电路实现的控制方法.pdf的说明分析.rar
汽车线控制动技术的发展与应用.doc
bim标准文件3ds格式建筑模型,可用于bim开发研究bim标准文件3ds格式建筑模型,可用于bim开发研究
Android应用开发记录-字幕播放器(5)完善附带工程,源码 1.将操作按钮改成图标方式 2.有电话接入时暂停播放。 3.通过线控按钮控制播放,暂停,上一句歌词,下一句歌词功能。(Android2.2以上版本) 4.拔掉耳机线时...
北恩设备说明书
北恩设备说明书