2010-12-15 2 views
2

나는 현재에 의해 지정된 ACTION_SCO_AUDIO_STATE_CHANGED에 대한 상태를 잡으려고 노력하고있어 : 내 매니페스트의 의도를 등록 http://developer.android.com/reference/android/media/AudioManager.html#ACTION_SCO_AUDIO_STATE_CHANGEDACTION_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

+0

나는 모두가 잃어버린 것 같아 ... – Jona

답변

1

그것은 아마도 매니페스트를 사용하여 수신 할 수없는 방송 의도입니다. BroadcastReceiver 개체를 설정하고 브로드 캐스트를 수신하도록 등록해야합니다. 수신자가 의도를 수신하려면 활성 상태 여야합니다.

일부 브로드 캐스트 인 텐트는 이와 같이 작동하지만 다른 일부는 매니페스트를 통해 포착 될 수 있습니다.

다른 가능성은 수신자가 요청하지 않은 권한이 필요하다는 것입니다.

이것은 Context.registerReceiver()에 대한 SDK의 중요한 참고 사항입니다. 참고 :이 메서드는 BroadcastReceiver 구성 요소에서 호출 할 수 없습니다. 즉, 응용 프로그램의 매니페스트에서 선언 된 BroadcastReceiver에서 가져옵니다. 이러한 등록 된 브로드 캐스트 리시버의 수명은 그것을

-1
<uses-permission android:name="android.permission.BROADCAST_STICKY" 
등록 된 객체에 연결되어 있기 때문에 그것은 괜찮습니다, 그러나, 그 자체가 registerReceiver (브로드 캐스트 리시버,로 IntentFilter)와 런타임에 등록 된 다른 브로드 캐스트 리시버에서이 메소드를 호출합니다
+0

끈적한 것이 전혀 필요하지 않습니다. – Jona

관련 문제