下面列出了android.media.AudioManager#ACTION_SCO_AUDIO_STATE_UPDATED 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private String getScoChangeIntent() {
return AudioManager.ACTION_SCO_AUDIO_STATE_UPDATED;
}
private String getScoChangeIntent() {
return AudioManager.ACTION_SCO_AUDIO_STATE_UPDATED;
}
/**
* Registers receiver for the broadcasted intent related the existence
* of a BT SCO channel. Indicates if BT SCO streaming is on or off.
*/
private void registerForBluetoothScoIntentBroadcast() {
IntentFilter filter = new IntentFilter(
AudioManager.ACTION_SCO_AUDIO_STATE_UPDATED);
/** BroadcastReceiver implementation which handles changes in BT SCO. */
mBluetoothScoReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
int state = intent.getIntExtra(
AudioManager.EXTRA_SCO_AUDIO_STATE,
AudioManager.SCO_AUDIO_STATE_DISCONNECTED);
if (DEBUG) {
logd("BroadcastReceiver.onReceive: a=" + intent.getAction()
+ ", s=" + state
+ ", sb=" + isInitialStickyBroadcast());
}
switch (state) {
case AudioManager.SCO_AUDIO_STATE_CONNECTED:
mBluetoothScoState = STATE_BLUETOOTH_SCO_ON;
break;
case AudioManager.SCO_AUDIO_STATE_DISCONNECTED:
if (mBluetoothScoState != STATE_BLUETOOTH_SCO_TURNING_OFF) {
// Bluetooth is probably powered off during the call.
// Update the existing device selection, but only if a specific
// device has already been selected explicitly.
if (deviceHasBeenRequested()) {
updateDeviceActivation();
}
}
mBluetoothScoState = STATE_BLUETOOTH_SCO_OFF;
break;
case AudioManager.SCO_AUDIO_STATE_CONNECTING:
// do nothing
break;
default:
loge("Invalid state");
}
if (DEBUG) {
reportUpdate();
}
}
};
ContextUtils.getApplicationContext().registerReceiver(mBluetoothScoReceiver, filter);
}