当我断开连接时,请使用以下内容:
private voID disconnectDevice() { gatt.disconnect();}
当我收到回调时,我会收尾.
private BluetoothGattCallback gattCallback = new BluetoothGattCallback() { @OverrIDe public voID onConnectionStateChange(BluetoothGatt gatt,int status,int newState) { switch (newState) { case BluetoothProfile.STATE_CONNECTED: Log.d("BLED-GATT","STATE_CONNECTED"); setUIConnectionStatus("discover services on device...",color.YELLOW); checkEnableAddbutton(simpleTrackEditText.getText().toString()); gatt.discoverServices(); break; case BluetoothProfile.STATE_disCONNECTED: Log.d("BLED-GATT","STATE_disCONNECTED"); setUIConnectionStatus("Not Connected!",color.RED); gatt.close(); break; default: Log.d("BLED-GATT","STATE_OTHER"); } }}
这是执行的,我在调用disconnectDevice()后无法再控制设备.设备本身似乎认为它仍然连接,因为我无法将其置于广播可见性模式(如果它已经有连接就会发生).但是,如果我终止应用程序并再次打开它,那么我可以将设备设置为广播模式.这告诉我应用程序未正确断开连接.
知道我错过了什么吗?
解决方法 问题是我在扫描期间多次连接到同一设备导致我的应用程序同时打开许多连接.添加!isConnected()解决了这个问题:/** * Connects to the device. Does nothing if already connected. * @param macAddress the address of the device. */private voID connectDevice(String macAddress) { if (!isConnected()) { device = bluetoothAdapter.getRemoteDevice(macAddress); if (device == null) { this.sendToast("Device Not Available"); } else { Log.d("BLED","Connecting..."); gatt = device.connectGatt(this,true,gattCallback); } }}总结
以上是内存溢出为你收集整理的android – 完全断开蓝牙低功耗设备全部内容,希望文章能够帮你解决android – 完全断开蓝牙低功耗设备所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)