安卓设备如何监听蓝牙的连接状态
如题,在我的APP中,成功将手机连接上了一个蓝牙串口,现在想监听它们之间的连接状态。在网上找到的方式都是用BroadcastReceiver来监听蓝牙状态改变的广播,于是我实现了这种方式,代码部分如下:
    private void registerBoradcastReceiver() {
    IntentFilter stateChangeFilter = new IntentFilter(
            BluetoothAdapter.ACTION_STATE_CHANGED);
    IntentFilter connectedFilter = new IntentFilter(
            BluetoothDevice.ACTION_ACL_CONNECTED);
    IntentFilter disConnectedFilter = new IntentFilter(
            BluetoothDevice.ACTION_ACL_DISCONNECTED);
    registerReceiver(stateChangeReceiver, stateChangeFilter);
    registerReceiver(stateChangeReceiver, connectedFilter);
    registerReceiver(stateChangeReceiver, disConnectedFilter);
}

    private BroadcastReceiver stateChangeReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (BluetoothDevice.ACTION_ACL_CONNECTED == action) {
            showchange(action);
        }
        if (BluetoothDevice.ACTION_ACL_DISCONNECTED == action) {
            showchange(action);
        }
        if (BluetoothAdapter.ACTION_STATE_CHANGED == action) {
            showchange(action);
        }
    }
};

但是调试的时候并没有监听到任何的状态变化,求指教。

6个回答

你试试把==action换成equals(action)

将IntentFilter connectedFilter = new IntentFilter(
BluetoothDevice.ACTION_ACL_CONNECTED);
换成IntentFilter connectedFilter = new IntentFilter(BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED);再试下
同时,注意加上蓝牙的相关权限

weixin_42630638
抱着回忆旅行 showchange是什么?
2 个月之前 回复
huohou
huohou ACTION_CONNECTION_STATE_CHANGED这个能得到广播吗?我这边的根本没反应,都是在LE的回调和ACL的连接监听获得的。
5 年多之前 回复

楼主,太谢谢你了,帮我解决了一个问题!

楼主请问这个问题解决了吗?
我也遇到了

这个 经典设备 到底行不行 哦 这个方法能用, 可是 需要的是蓝牙断开的广播,一段app 就会自动去检测 我们才好做下一步的操作,这个问题 没有好的解决棒法吗?

java_carson
java_carson 你解决这个问题没
接近 3 年之前 回复

这个太难了,无法回答你

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐