2010-12-15 56 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

相關問題