2010-12-15 87 views
2

我目前正试图通过指定赶上国ACTION_SCO_AUDIO_STATE_CHANGED: http://developer.android.com/reference/android/media/AudioManager.html#ACTION_SCO_AUDIO_STATE_CHANGED我似乎无法抓住ACTION_SCO_AUDIO_STATE_CHANGED意图为什么?

我已经注册了我的表现意图,但连接到蓝牙设备时,我没有得到任何东西。我需要的任何特定许可或什么?

清单:

<receiver android:name="com.app.receiver.BluetoothReceiver"> 
     <intent-filter> 
      <action android:name="android.media.SCO_AUDIO_STATE_CHANGED" /> 
      <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 android:name="android.bluetooth.device.action.BOND_STATE_CHANGED" /> 
     </intent-filter> 
    </receiver> 

我不能得到任何来自BOND_STATE_CHANGED,SCO_AUDIO_STATE_CHANGED或ACL_DISCONNECT_REQUESTED的呼叫。我收到的其他意图很好。

感谢,

-Jona

+0

你可以在注册接收器的地方发布清单吗? – EboMike 2010-12-15 20:02:38

+0

我想我就像每个人一样迷失...... – Jona 2010-12-17 15:31:14

回答

1

它可能无法使用清单接收的广播意图。您必须设置一个BroadcastReceiver对象并注册它以接收广播。接收方必须处于活动状态才能收到意图。

某些广播意图以这种方式工作,而其他广播意图则可以通过清单捕获。

另一种可能性是接收器需要您没有请求的权限。

这是SDK关于Context.registerReceiver()的一个重要注意事项。 注意:此方法不能从BroadcastReceiver组件调用;也就是从应用程序清单中声明的​​BroadcastReceiver。它是好的,然而,从自身已经与registerReceiver(广播接收器,IntentFilter的)注册在运行时另一个广播接收器调用该方法,因为这种注册的BroadcastReceiver的寿命就会与该注册它

-1
<uses-permission android:name="android.permission.BROADCAST_STICKY" 
对象
+0

粘性不是必需的。 – Jona 2013-07-01 12:09:24

相关问题