Android线控耳机长按事件

1,在这个周的工作中,这个问题让我纠结了好久,问度娘不知道,上android开发者官网似乎进入了词海,翻了下上了个GOOGLE,还是没有很好的答案。

2,后来得到一个相关的APK,研究过后发现原来跟线控耳机长按时,出来百度语音搜索应该一个原理(有装百度手机客户端的话)。

3,主要就两个ACTION就可以实现长按操作,而且类似于后台服务的效果(如果界面显示的话,直接LongPress就可以处理了):

  在Manifest中的一个activity下插入如下代码

 <intent-filter android:priority="2147483647">
                <action android:name="android.speech.action.WEB_SEARCH" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter android:priority="2147483647">
                <action android:name="android.speech.action.VOICE_SEARCH_HANDS_FREE" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>

4,当然,这个activity的dialog风格可以随意,比如弄成一个弹框界面大小的风格 或者 完全透明的风格(在onStart中执行完相应操作后并finish,就类似于一种看

              不见的服务效果,而且不会因主程序被后台清理掉而收不到响应),跟一同事聊天的时候,他说可以搞一个偷拍,这个。。。。。。

 

5,上面的代码紧针对Android4.1及以上的系统(因为线控耳机的长按操作被GOOGLE当作语音搜索保留),Android4.1以下的版本则只需响应一个叫MEDIA_BUTTON

  的服务即可,此时算下DOWN 和 UP的时间即可处理成长按操作。

 

Android线控耳机长按事件

上一篇:vue将文件流的形式的图形验证码转换成图片


下一篇:[Android]使用Spring for Android改善数据交互流程