用蓝牙耳机启动程序

最近在写个小程序,要用到蓝牙按键启动程序。
Google搜到,用蓝牙耳机启动讯飞语点,可自动亮屏自动解锁
照搬进行自己的 AndroidManifest.xml

<intent-filter android:priority="-5">
                <!-- VOICE_COMMAND 绑定蓝牙按键 触发事件 进行捕获 -->
                <action android:name="android.intent.action.VOICE_COMMAND" />
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

重新编译程序,还是不行。上文有提到这个“语音拨号器”的。
但是有的ROM下不会弹出选择框,总是缺省运行“语音拨号器”,解决办法:系统设置-应用-全部-语音拨号器-停用。然后再按下蓝牙耳机拨号键,就可以看到弹出选择窗口。
手动把“语音拨号器”禁用,再来,还是不行。
 接着搜寻,https://code.google.com/p/android/issues/detail?id=36668
哦,原来是这样,优先级不够高,直接上 -5 。

<intent-filter android:priority="-5">
                <!-- VOICE_COMMAND 绑定蓝牙按键 触发事件 进行捕获 -->
                <action android:name="android.intent.action.VOICE_COMMAND" />
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
嘻嘻,成功启动!我按按哟,结果启动大堆 Activity 。再搜之 onNewIntent调用时机
直接上关键点 
android:launchmode="singleTask"

OK! 搞定。
补充点新知识,
又搜  区分Activity的四种加载模式

你可能感兴趣的:(用蓝牙耳机启动程序)