gpt4 book ai didi

android - CONNECTION_STATE_CHANGED 和 STATE_CHANGED 之间的区别

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:29:10 25 4
gpt4 key购买 nike

Android 蓝牙接收器中的 Action CONNECTION_STATE_CHANGED 和 STATE_CHANGED 有什么区别?

            else if (BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED .equals(action)) {
int state = intent.getIntExtra(BluetoothAdapter.EXTRA_CONNECTION_STATE,
BluetoothAdapter.STATE_DISCONNECTED);
if (state == BluetoothAdapter.STATE_CONNECTED) {
//nothing
} else {

}
} else if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action)) {
int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
if (state == BluetoothAdapter.STATE_OFF) {

}
}

最佳答案

根据docs区别如下:

ACTION_CONNECTION_STATE_CHANGED

Intent 用于将本地蓝牙适配器的连接状态更改广播到远程设备的配置文件。

ACTION_STATE_CHANGED

本地蓝牙适配器的状态已更改。例如,蓝牙已打开或关闭。

换句话说,一个 Intent 用于改变连接状态,另一个用于改变蓝牙适配器本身的状态。

编辑:

要检测设备是否移入和移出范围,您需要使用以下 Intent :

对于这两种情况,您都需要普通的 BLUETOOTH 权限和 BLUETOOTH_ADMIN 权限:

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH" />

BroadcastReceiver 的 intent 过滤器看起来像这样:

<intent-filter> 
<action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
<action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" />
</intent-filter>

Here是关于 BluetoothDevice 的一般文档。

关于android - CONNECTION_STATE_CHANGED 和 STATE_CHANGED 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23435725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com