2010-12-15 5 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, зачем?

Я зарегистрировал намерение на моем манифесте, но я ничего не получаю при подключении к Bluetooth-устройству. Любое конкретное разрешение, которое мне нужно или что-то еще?

Manifest:

<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, объявленного в манифесте приложения. Это хорошо, однако, этот метод вызывается из другого BroadcastReceiver, который сам по себе был зарегистрирован во время выполнения с registerReceiver (BroadcastReceiver, IntentFilter), так как время жизни такого зарегистрированного BroadcastReceiver привязан к объекту, который зарегистрировал его

-1
<uses-permission android:name="android.permission.BROADCAST_STICKY" 
Смежные вопросы