2010-12-15 18 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のインテントを捕まえることができないのはなぜですか?

私は私のマニフェストの意図を登録しているが、Bluetoothデバイスに接続するとき、私は何も届きません。私が必要とする、または何かの特定の許可?

マニフェスト:

<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から取得します。このように登録しBroadcastReceiverの寿命はそれに

-1
<uses-permission android:name="android.permission.BROADCAST_STICKY" 
を登録されたオブジェクトに関連付けられていますので、それは、それ自体がregisterReceiver(BroadcastReceiver、IntentFilter)で、実行時に登録されている別のBroadcastReceiverからこのメソッドを呼び出すために、しかし、大丈夫です
+0

スティッキーはまったく必要ありません。 – Jona

関連する問題