Кажется, я не могу поймать намерение ACTION_SCO_AUDIO_STATE_CHANGED почему? - PullRequest
3 голосов
/ 15 декабря 2010

В настоящее время я пытаюсь перехватить состояния для ACTION_SCO_AUDIO_STATE_CHANGED, как указано: http://developer.android.com/reference/android/media/AudioManager.html#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

Ответы [ 2 ]

1 голос
/ 24 марта 2011

Это, вероятно, намерение вещания, которое не может быть получено с помощью манифеста.Вам нужно будет настроить объект BroadcastReceiver и зарегистрировать его для получения трансляции.Приемник должен быть активным, чтобы получить намерение.

Некоторые широковещательные намерения работают так, в то время как другим разрешено перехватывать через манифест.

Другая возможность состоит в том, что получателю требуетсяразрешение, которое вы не запрашиваете.

Это важное примечание из SDK о Context.registerReceiver ().Примечание: этот метод не может быть вызван из компонента BroadcastReceiver;то есть от BroadcastReceiver, который объявлен в манифесте приложения.Однако можно вызывать этот метод из другого BroadcastReceiver, который сам был зарегистрирован во время выполнения с помощью registerReceiver (BroadcastReceiver, IntentFilter), поскольку время жизни такого зарегистрированного BroadcastReceiver связано с объектом, который его зарегистрировал

0 голосов
/ 30 июня 2013
   <uses-permission android:name="android.permission.BROADCAST_STICKY" 
...