首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >断开设备连接后未调用OnConnectionStateChange

断开设备连接后未调用OnConnectionStateChange
EN

Stack Overflow用户
提问于 2018-07-16 23:05:53
回答 0查看 1.1K关注 0票数 0

当我在参数中禁用蓝牙时,我遇到了一个问题。我使用广播接收器来监听这个动作,当它的状态关闭时,我调用一个方法来断开我的外围设备。在我的日志中,我只看到了D/BluetoothGatt: cancelOpen(),但是根据BluetoothGatt.class的说法,这个服务在disconnect方法中调用我们的BluetoothGattCallback,带有onConnectionStateChanged的方法变成了DEVICE_DISCONNECTED,在20或30秒之后我也什么都没有了(管理程序超时)。

当我想要用我的内部方法直接断开我的设备时,它可以正常工作。

这是disconnect方法:

代码语言:javascript
运行
复制
   /**
     * Disconnects an established connection, or cancels a connection attempt
     * currently in progress.
     *
     * <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission.
     */
    public void disconnect() {
        if (DBG) Log.d(TAG, "cancelOpen() - device: " + mDevice.getAddress());
        if (mService == null || mClientIf == 0) return;

        try {
            mService.clientDisconnect(mClientIf, mDevice.getAddress());
        } catch (RemoteException e) {
            Log.e(TAG,"",e);
        }
    }

我检查了反射是否mClientIf等于0,或者mService是否为空,但他进入下一步并进入try/catch。所以我不理解这里的Android行为

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51364891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档