Android 9.0 蓝牙各种广播监听

蓝牙开关状态变化
BluetoothAdapter.ACTION_STATE_CHANGED

if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
    int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,
            BluetoothAdapter.ERROR);
    switch (state) {
        case BluetoothAdapter.STATE_OFF:
            Log.d("BroadcastReceiver", "STATE_OFF 手机蓝牙关闭");
            break;
        case BluetoothAdapter.STATE_TURNING_OFF:
            Log.d("BroadcastReceiver", "STATE_TURNING_OFF 手机蓝牙正在关闭");
            break;
        case BluetoothAdapter.STATE_ON:
            Log.d("BroadcastReceiver", "STATE_ON 手机蓝牙开启");
            break;
        case BluetoothAdapter.STATE_TURNING_ON:
            Log.d("BroadcastReceiver", "STATE_TURNING_ON 手机蓝牙正在开启");
            break;
    }
}

蓝牙设备配对状态变化
BluetoothDevice.ACTION_BOND_STATE_CHANGED

if (action.equals(BluetoothDevice.ACTION_BOND_STATE_CHANGED)) {
    BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
    String name = device.getName();
    Log.d("BroadcastReceiver", "device name: " + name);
    int state = intent.getIntExtra(BluetoothDevice.EXTRA_BOND_STATE, -1);
    switch (state) {
        case BluetoothDevice.BOND_NONE:
            Log.d("BroadcastReceiver", "BOND_NONE 删除配对");
            break;
        case BluetoothDevice.BOND_BONDING:
            Log.d("BroadcastReceiver", "BOND_BONDING 正在配对");
            break;
        case BluetoothDevice.BOND_BONDED:
            Log.d("BroadcastReceiver", "BOND_BONDED 配对成功");
            break;
    }
} 

蓝牙设备acl连接和连接断开
BluetoothDevice.ACTION_ACL_CONNECTED
BluetoothDevice.ACTION_ACL_DISCONNECTED

if (action.equals(BluetoothDevice.ACTION_ACL_CONNECTED)) {
    BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
    Log.d("BroadcastReceiver", device.getName() + " ACTION_ACL_CONNECTED");
} else if (action.equals(BluetoothDevice.ACTION_ACL_DISCONNECTED)) {
    BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
    Log.d("BroadcastReceiver", device.getName() + " ACTION_ACL_DISCONNECTED");
}

蓝牙通话输出模式改变
BluetoothHeadsetClient.ACTION_AUDIO_STATE_CHANGED

String: BluetoothProfile.EXTRA_STATE
		BluetoothProfile.EXTRA_PREVIOUS_STATE

value: 	    
	/** The profile is in disconnected state */
    int STATE_DISCONNECTED = 0;
    /** The profile is in connecting state */
    int STATE_CONNECTING = 1;
    /** The profile is in connected state */
    int STATE_CONNECTED = 2;
    /** The profile is in disconnecting state */
    int STATE_DISCONNECTING = 3;

蓝牙远程广播连接状态
BluetoothHeadsetClient.ACTION_CONNECTION_STATE_CHANGED

String: BluetoothProfile.EXTRA_STATE
		BluetoothProfile.EXTRA_PREVIOUS_STATE

value: 	    
	/** The profile is in disconnected state */
    int STATE_DISCONNECTED = 0;
    /** The profile is in connecting state */
    int STATE_CONNECTING = 1;
    /** The profile is in connected state */
    int STATE_CONNECTED = 2;
    /** The profile is in disconnecting state */
    int STATE_DISCONNECTING = 3;

接收上次执行的结果
BluetoothHeadsetClient.ACTION_RESULT

String: BluetoothHeadsetClient.EXTRA_RESULT_CODE
		BluetoothHeadsetClient.EXTRA_CME_CODE

value: 	    
	 * {@link #ACTION_RESULT_OK},
     * {@link #ACTION_RESULT_ERROR},
     * {@link #ACTION_RESULT_ERROR_NO_CARRIER},
     * {@link #ACTION_RESULT_ERROR_BUSY},
     * {@link #ACTION_RESULT_ERROR_NO_ANSWER},
     * {@link #ACTION_RESULT_ERROR_DELAYED},
     * {@link #ACTION_RESULT_ERROR_BLACKLISTED},
     * {@link #ACTION_RESULT_ERROR_CME}

最后一次语音号码
BluetoothHeadsetClient.ACTION_LAST_VTAG

   * {@link #EXTRA_NUMBER},
     * with a <code>String</code> value representing phone number.

通话状态改变
BluetoothHeadsetClient.ACTION_CALL_CHANGED

String: BluetoothHeadsetClient.EXTRA_CALL

value:
	BluetoothHeadsetClientCall 	    
	 /**
     * Call is active.
     */
    public static final int CALL_STATE_ACTIVE = 0;
    /**
     * Call is in held state.
     */
    public static final int CALL_STATE_HELD = 1;
    /**
     * Outgoing call that is being dialed right now.
     */
    public static final int CALL_STATE_DIALING = 2;
    /**
     * Outgoing call that remote party has already been alerted about.
     */
    public static final int CALL_STATE_ALERTING = 3;
    /**
     * Incoming call that can be accepted or rejected.
     */
    public static final int CALL_STATE_INCOMING = 4;
    /**
     * Waiting call state when there is already an active call.
     */
    public static final int CALL_STATE_WAITING = 5;
    /**
     * Call that has been held by response and hold
     * (see Bluetooth specification for further references).
     */
    public static final int CALL_STATE_HELD_BY_RESPONSE_AND_HOLD = 6;
    /**
     * Call that has been already terminated and should not be referenced as a valid call.
     */
    public static final int CALL_STATE_TERMINATED = 7;

更新AG(Audio Gateway)状态
BluetoothHeadsetClient.ACTION_AG_EVENT

String: 
	 * {@link #EXTRA_NETWORK_STATUS},
     * {@link #EXTRA_NETWORK_SIGNAL_STRENGTH},
     * {@link #EXTRA_NETWORK_ROAMING},
     * {@link #EXTRA_BATTERY_LEVEL},
     * {@link #EXTRA_OPERATOR_NAME},
     * {@link #EXTRA_VOICE_RECOGNITION},
     * {@link #EXTRA_IN_BAND_RING}
     * EXTRA_SUBSCRIBER_INFO
value:

蓝牙连接状态变化
BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED

String: BluetoothAdapter.EXTRA_CONNECTION_STATE
		BluetoothAdapter.EXTRA_PREVIOUS_CONNECTION_STATE

value: 	    
	/** The profile is in disconnected state */
    int STATE_DISCONNECTED = 0;
    /** The profile is in connecting state */
    int STATE_CONNECTING = 1;
    /** The profile is in connected state */
    int STATE_CONNECTED = 2;
    /** The profile is in disconnecting state */
    int STATE_DISCONNECTING = 3;

蓝牙pbap状态变化
BluetoothPbapClient.ACTION_CONNECTION_STATE_CHANGED

String: BluetoothProfile.EXTRA_STATE
		BluetoothAdapter.EXTRA_PREVIOUS_STATE

value: 	    
	/** The profile is in disconnected state */
    int STATE_DISCONNECTED = 0;
    /** The profile is in connecting state */
    int STATE_CONNECTING = 1;
    /** The profile is in connected state */
    int STATE_CONNECTED = 2;
    /** The profile is in disconnecting state */
    int STATE_DISCONNECTING = 3;

蓝牙a2dp状态变化
BluetoothA2dpSink.ACTION_CONNECTION_STATE_CHANGED

String: BluetoothProfile.EXTRA_STATE
		BluetoothAdapter.EXTRA_PREVIOUS_STATE

value: 	    
	/** The profile is in disconnected state */
    int STATE_DISCONNECTED = 0;
    /** The profile is in connecting state */
    int STATE_CONNECTING = 1;
    /** The profile is in connected state */
    int STATE_CONNECTED = 2;
    /** The profile is in disconnecting state */
    int STATE_DISCONNECTING = 3;

蓝牙名字变化
BluetoothDevice.ACTION_NAME_CHANGED

String: 
		BluetoothDevice.EXTRA_DEVICE

value: 

蓝牙开始扫描设备
BluetoothAdapter.ACTION_DISCOVERY_STARTED
蓝牙扫描结束
BluetoothAdapter.ACTION_DISCOVERY_FINISHED
蓝牙发现设备
BluetoothDevice.ACTION_FOUND
蓝牙音乐信息变化
AvrcpControllerService.ACTION_TRACK_EVENT

String: AvrcpControllerService.EXTRA_METADATA
		   AvrcpControllerService.EXTRA_PLAYBACK
value: 	    
	MediaMetadata metaData = intent.getParcelableExtra(EXTRA_METADATA);
    PlaybackState state = intent.getParcelableExtra(EXTRA_PLAYBACK);

转载:https://blog.csdn.net/geniushorse/article/details/108601349?spm=1001.2014.3001.5501

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值