2016-09-06 368 views
0

我想拦截蓝牙耳机上唯一的一个按钮。我尝试了很多在网站上找到的东西,但都没有成功。主要活动管理蓝牙连接(使用https://github.com/sauravpradhan/AnySound2BT的代码)。蓝牙耳机上的拦截按钮

我有以下清单文件:

... 
<uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="21" /> 

    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 
    <uses-permission android:name="android.permission.BLUETOOTH" /> 
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 
    <uses-permission android:name="android.permission.BROADCAST_STICKY" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppBaseTheme" > 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 

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

     </activity> 


     <receiver android:name=".MyReceiver" > 
      <intent-filter> 
       <action android:name="android.bluetooth.device.action.ACL_CONNECTED" /> 
       <action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" /> 
       <action android:name="android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED" > 
       </action> 
      </intent-filter> 

     </receiver> 
... 

当我点击一次,没有任何反应和电话问我第二次启动“S声音”或“谷歌APPLI”。

感谢您的任何提示

卡里姆

回答

0

他们有很多方法来拦截按钮的功能,如果这个按钮真的东西。

根据您的描述,手机要求您启动“S语音”或“Google应用程序”,然后我假设其中一个按钮的组合功能是“语音识别激活”。

您可以导出Android的btsnoop日志,然后单击HFP标签查找AT命令,然后您就可以了解按钮发送的内容。

请注意,对于耳机上的所有按钮,长按,短按和继续短按,在打电话或不打电话时的按键可能有不同的含义。