蓝牙连接,原因码= 0x000e-Android

仰天大笑出门去,我辈岂是蓬蒿人。这篇文章主要讲述蓝牙连接,原因码= 0x000e-Android相关的知识,希望能为你提供帮助。
我正在尝试创建一个连接/断开BLE设备的应用程序。我已经使用标准的android BT API创建了一个应用程序。这是我连接BLE设备的代码

try { Log.d(TAG, "Going to connect"); BluetoothDevice device = BluetoothAdapter.getDefaultAdapter().getRemoteDevice(macaddress); if (device.getBondState() == BluetoothDevice.BOND_BONDED) { Log.d(TAG, "Device is already bonded. try connecting it"); if (bluetoothGatt != null) { Log.d(TAG, "bluetoothGatt is not null. Just connect it"); bluetoothGatt.connect(); return; } bluetoothGatt = device.connectGatt(getApplicationContext(), false, gattCallback); bluetoothGatt.requestConnectionPriority(BluetoothGatt.CONNECTION_PRIORITY_HIGH); } else { Log.d(TAG, "Device is ? =====> " + device.getBondState() + " Create bond"); device.createBond(); } } catch (Exception ex) { Log.e(TAG, ex.toString()); }

****广播接收器****
private final BroadcastReceiver mPairingRequestRecevier = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { Log.d(TAG, "Intent action is: " + intent.getAction()); if (BluetoothDevice.ACTION_PAIRING_REQUEST.equals(intent.getAction())) { final BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); int type = intent.getIntExtra(BluetoothDevice.EXTRA_PAIRING_VARIANT, BluetoothDevice.ERROR); try { byte[] pinbytes; pinbytes = ("" + 1234).getBytes("UTF-8"); Log.d(TAG, "+_+_+_+_+_+_+_+_+Setting pin to : +_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_"); device.setPin(pinbytes); abortBroadcast(); } catch (Exception ex) { ex.printStackTrace(); }} else if (BluetoothDevice.ACTION_ACL_CONNECTED.equals(intent.getAction())) { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "BT Connected",Toast.LENGTH_SHORT).show(); } }); Log.d(TAG, "Device is connected"); } else if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(intent.getAction())) { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "BT DisConnected",Toast.LENGTH_SHORT).show(); } }); Log.d(TAG, "Device is Disconnected"); } else if (BluetoothDevice.ACTION_BOND_STATE_CHANGED.equals(intent.getAction())) { int state = intent.getIntExtra(BluetoothDevice.EXTRA_BOND_STATE, -1); switch (state) { case BluetoothDevice.BOND_NONE: Log.d(TAG, "The remote device is not bonded."); runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "The remote device is not bonded",Toast.LENGTH_SHORT).show(); } }); break; case BluetoothDevice.BOND_BONDING: Log.d(TAG, "Bonding is in progress with the remote device."); break; case BluetoothDevice.BOND_BONDED: Log.d(TAG, "The remote device is bonded."); runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "The remote device is bonded.",Toast.LENGTH_SHORT).show(); } }); BluetoothDevice device = BluetoothAdapter.getDefaultAdapter().getRemoteDevice(macaddress); bluetoothGatt = device.connectGatt(getApplicationContext(), false, gattCallback); bluetoothGatt.requestConnectionPriority(BluetoothGatt.CONNECTION_PRIORITY_HIGH); Log.d(TAG, "Connection done: " + bluetoothGatt); break; default: Log.d(TAG, "Unknown remote device bonding state."); break; } } } };

[当我尝试执行并连接设备时,它会连接,然后立即断开连接,原因码为0x000e。这是logcat的输出:
06-02 15:23:58.577 24490 24490 D MAULIK: Going to connect 06-02 15:23:58.58016561707 D BluetoothManagerService: Message: 20 06-02 15:23:58.58016561707 D BluetoothManagerService: Added callback: android.bluetooth.IBluetoothManagerCallback$Stub$Proxy@d9976e7:true 06-02 15:23:58.595 24490 24490 D MAULIK: Device is ? =====> 10 Create bond 06-02 15:23:58.595 24490 24490 I BluetoothDevice: createBond() for device 4C:55:CC:1C:8C:F6 called by pid: 24490 tid: 24490 06-02 15:23:58.597 23899 23917 D A2dpService: getA2DPService(): returning com.android.bluetooth.a2dp.A2dpService@9811aea 06-02 15:23:58.599 23899 23928 I BluetoothBondStateMachine: Bond address is:4C:55:CC:1C:8C:F6 06-02 15:23:58.599 23899 23928 D bt_btif_config: btif_get_device_type: Device [4c:55:cc:1c:8c:f6] type 2 06-02 15:23:58.599 23899 23928 I bt_btif_dm: get_cod remote_cod = 0x00001f00 06-02 15:23:58.599 23899 23928 I BluetoothBondStateMachine: Entering PendingCommandState State 06-02 15:23:58.599 23899 23927 I bt_btif_dm: get_cod remote_cod = 0x00001f00 06-02 15:23:58.599 23899 23927 D bt_btif_config: btif_get_device_type: Device [4c:55:cc:1c:8c:f6] type 2 06-02 15:23:58.600 23899 23927 I bt_btif_dm: get_cod remote_cod = 0x00001f00 06-02 15:23:58.600 23899 23927 I BluetoothBondStateMachine: bondStateChangeCallback: Status: 0 Address: 4C:55:CC:1C:8C:F6 newState: 1 06-02 15:23:58.602 23899 23942 W bt_l2cap: l2cble_init_direct_conn 06-02 15:23:58.604 23899 23928 I BluetoothBondStateMachine: Bond State Change Intent:4C:55:CC:1C:8C:F6 OldState: 10 NewState: 11 06-02 15:23:58.607 24490 24490 D MAULIK: Intent action is: android.bluetooth.device.action.BOND_STATE_CHANGED 06-02 15:23:58.607 24490 24490 D MAULIK: Bonding is in progress with the remote device. 06-02 15:23:58.611 23935 23939 I WCNSS_FILTER: ibs_bt_device_wakeup: Writing IBS_WAKE_IND 06-02 15:23:58.621 23899 23942 E bt_btif : bte_scan_filt_param_cfg_evt, 23 06-02 15:23:58.625 23899 23899 V BluetoothFtpService: Ftp Service onStartCommand 06-02 15:23:58.625 23899 23899 V BluetoothFtpService: PARSE INTENT action: android.bluetooth.device.action.BOND_STATE_CHANGED 06-02 15:23:58.628 23899 23899 D A2dpService: getA2DPService(): returning com.android.bluetooth.a2dp.A2dpService@9811aea 06-02 15:23:58.628 23899 23899 D BluetoothFtpService: device: DB9-8CF6 06-02 15:23:58.633 23899 23899 D BluetoothDunService: parseIntent: action: android.bluetooth.device.action.BOND_STATE_CHANGED 06-02 15:23:58.637 23899 23899 D A2dpService: getA2DPService(): returning com.android.bluetooth.a2dp.A2dpService@9811aea 06-02 15:23:58.637 23899 23899 D BluetoothDunService: device: DB9-8CF6 06-02 15:23:58.646 23899 23942 I bt_btm_ble: btm_ble_resolve_random_addr_on_conn_cmpl unable to match and resolve random address 06-02 15:23:58.646 23899 23942 W bt_btm: btm_acl_created hci_handle=5 link_role=0transport=2 06-02 15:23:58.755 23899 23942 E bt_btm: BTM_SetBlePhy failed, peer does not support request 06-02 15:23:58.760 23899 23927 D BtGatt.GattService: onConnected() connId=5, address=4C:55:CC:1C:8C:F6, connected=true 06-02 15:23:58.761 23899 23942 W bt_smp: io_cap = 4 06-02 15:23:58.761 23899 23927 D BluetoothGattServer: onServerConnectionState() - status=0 serverIf=5 device=4C:55:CC:1C:8C:F6 06-02 15:23:58.762 23899 23942 W bt_smp: rcvd auth_req: 0x2d, io_cap: 4loc_oob_flag: 0 loc_enc_size: 16,local_i_key: 0x0f, local_r_key: 0x0f 06-02 15:23:58.762 23899 23942 W bt_smp: lmp_version_below LMP version 7 < 8 06-02 15:23:58.762 23899 23942 W bt_smp: set auth_req: 0x2d, local_i_key: 0x07, local_r_key: 0x07 06-02 15:23:58.765 23899 23942 W bt_smp: smp_br_connect_callback is called on unexpected transport 2 06-02 15:23:58.765 23899 23942 W bt_btm: btm_read_remote_version_complete: BDA: 4c-55-cc-1c-8c-f6 06-02 15:23:58.765 23899 23942 W bt_btm: btm_read_remote_version_complete lmp_version 7 manufacturer 15 lmp_subversion 8719 06-02 15:23:58.766 23899 23942 E bt_btif : bta_dm_acl_change new acl connetion:count = 1 06-02 15:23:58.766 23899 23942 W bt_btif : bta_dm_acl_change info: 0x0 06-02 15:23:58.766 23899 23942 W bt_l2cap: L2CA_SetDesireRole() new:x1, disallow_switch:0 06-02 15:23:58.769 23899 23927 D bt_btif_dm: remote version info [4c:55:cc:1c:8c:f6]: 0, 0, 0 06-02 15:23:58.773 23899 23927 E BluetoothRemoteDevices: state12newState0 06-02 15:23:58.773 23899 23927 D BluetoothRemoteDevices: aclStateChangeCallback: State:Connected to Device:4C:55:CC:1C:8C:F6 06-02 15:23:58.782 24490 24490 D MAULIK: Intent action is: android.bluetooth.device.action.ACL_CONNECTED 06-02 15:23:58.794 24490 24490 D MAULIK: Device is connected 06-02 15:23:58.892 23899 23942 W bt_l2cap: l2cble_process_conn_update_evt: Error status: 14 06-02 15:23:58.895 23899 23942 W bt_btif : bta_gattc_conn_cback() - cif=3 connected=0 conn_id=3 reason=0x000e 06-02 15:23:58.896 23899 23942 W bt_btif : bta_gattc_conn_cback() - cif=4 connected=0 conn_id=4 reason=0x000e 06-02 15:23:58.896 23899 23942 W bt_btif : bta_gattc_conn_cback() - cif=6 connected=0 conn_id=6 reason=0x000e 06-02 15:23:58.898 23899 23927 D BtGatt.GattService: onConnected() connId=5, address=4C:55:CC:1C:8C:F6, connected=false 06-02 15:23:58.898 23899 23927 D BluetoothGattServer: onServerConnectionState() - status=0 serverIf=5 device=4C:55:CC:1C:8C:F6 06-02 15:23:58.898 23899 23942 W bt_l2cap: L2CA_RemoveFixedChnl()CID: 0x0006BDA: 4c55cc1c8cf6 not connected 06-02 15:23:58.900 23899 23927 D bt_btif_config: btif_get_device_type: Device [4c:55:cc:1c:8c:f6] type 2 06-02 15:23:58.901 23899 23942 I bt_btm_sec: btm_sec_disconnected clearing pending flag handle:5 reason:14 06-02 15:23:58.906 23899 23942 W bt_l2cap: L2CA_SetDesireRole() new:x1, disallow_switch:0 06-02 15:23:58.906 23899 23942 E bt_btif : bta_gattc_mark_bg_conn unable to find the bg connection mask for: 4c:55:cc:1c:8c:f6 06-02 15:23:58.907 23899 23927 I bt_btif_dm: get_cod remote_cod = 0x00001f00 06-02 15:23:58.908 23899 23927 I BluetoothBondStateMachine: bondStateChangeCallback: Status: 9 Address: 4C:55:CC:1C:8C:F6 newState: 0 06-02 15:23:58.909 23899 23928 D BluetoothAdapterProperties: Failed to remove device: 4C:55:CC:1C:8C:F6 06-02 15:23:58.914 23899 23928 I BluetoothBondStateMachine: Bond State Change Intent:4C:55:CC:1C:8C:F6 OldState: 11 NewState: 10 06-02 15:23:58.914 23899 23927 E BluetoothRemoteDevices: state12newState1 06-02 15:23:58.914 23899 23927 D BluetoothRemoteDevices: aclStateChangeCallback: State:DisConnected to Device:4C:55:CC:1C:8C:F6 06-02 15:23:58.916 24490 24490 D MAULIK: Intent action is: android.bluetooth.device.action.BOND_STATE_CHANGED 06-02 15:23:58.916 24490 24490 D MAULIK: The remote device is not bonded. 06-02 15:23:58.930 23899 23899 D AvrcpBipRsp: onReceive: android.bluetooth.device.action.ACL_DISCONNECTED 06-02 15:23:58.931 23899 23899 D BluetoothMapService: onReceive 06-02 15:23:58.931 23899 23899 D BluetoothMapService: onReceive: android.bluetooth.device.action.ACL_DISCONNECTED 06-02 15:23:58.931 23899 23899 E BluetoothMapService: Unexpected error! 06-02 15:23:58.935 23899 23928 D A2dpService: getA2DPService(): returning com.android.bluetooth.a2dp.A2dpService@9811aea 06-02 15:23:58.936 24490 24490 D MAULIK: Intent action is: android.bluetooth.device.action.ACL_DISCONNECTED 06-02 15:23:58.949 23899 23899 V BluetoothFtpService: Ftp Service onStartCommand 06-02 15:23:58.949 23899 23899 V BluetoothFtpService: PARSE INTENT action: android.bluetooth.device.action.BOND_STATE_CHANGED 06-02 15:23:58.952 24490 24490 D MAULIK: Device is Disconnected 06-02 15:23:58.954 23899 23899 D A2dpService: getA2DPService(): returning com.android.bluetooth.a2dp.A2dpService@9811aea 06-02 15:23:58.954 23899 23899 D BluetoothFtpService: device: DB9-8CF6 06-02 15:23:58.959 23899 23928 I BluetoothBondStateMachine: StableState(): Entering Off State 06-02 15:23:58.967 23899 23899 D A2dpService: getA2DPService(): returning com.android.bluetooth.a2dp.A2dpService@9811aea 06-02 15:23:58.970 23899 23899 D BluetoothFtpService: BOND_STATE_CHANGED REFRESH trustDevices DB9-8CF6 06-02 15:23:58.975 23899 23899 D BluetoothDunService: parseIntent: action: android.bluetooth.device.action.BOND_STATE_CHANGED 06-02 15:23:58.983 23899 23899 D A2dpService: getA2DPService(): returning com.android.bluetooth.a2dp.A2dpService@9811aea 06-02 15:23:58.984 23899 23899 D BluetoothDunService: device: DB9-8CF6 06-02 15:23:58.986 23899 23899 D A2dpService: getA2DPService(): returning com.android.bluetooth.a2dp.A2dpService@9811aea 06-02 15:23:58.987 23899 23899 D BluetoothDunService: BOND_STATE_CHANGED REFRESH trustDevices DB9-8CF6 06-02 15:23:58.990 23899 23899 D BluetoothPbapReceiver: PbapReceiver onReceive action = android.bluetooth.device.action.ACL_DISCONNECTED 06-02 15:23:58.991 23899 23899 D BluetoothPbapReceiver: Calling start service with action = null 06-02 15:23:58.994 23899 23899 I BluetoothPbapReceiver: Exit - onReceive for intent:android.bluetooth.device.action.ACL_DISCONNECTED 06-02 15:23:58.994 23899 23899 D BluetoothPbapService: Enter - onStartCommand for service PBAP 06-02 15:23:58.994 23899 23899 D BluetoothPbapService: action: android.bluetooth.device.action.ACL_DISCONNECTED 06-02 15:23:58.994 23899 23899 D BluetoothPbapService: Exit - onStartCommand for service PBAP 06-02 15:23:59.003 23899 23951 D A2dpService: getA2DPService(): returning com.android.bluetooth.a2dp.A2dpService@9811aea 06-02 15:23:59.004 24046 24046 I BTLEASH : BTReceive action : android.bluetooth.device.action.ACL_DISCONNECTED :: Device : DB9-8CF6 06-02 15:23:59.006 23899 23961 D A2dpService: getA2DPService(): returning com.android.bluetooth.a2dp.A2dpService@9811aea 06-02 15:23:59.015 23899 23899 V BluetoothFtpService: Ftp Service onStartCommand 06-02 15:23:59.015 23899 23899 V BluetoothFtpService: PARSE INTENT action: android.bluetooth.device.action.ACL_DISCONNECTED 06-02 15:23:59.026 23899 23899 D BluetoothDunService: parseIntent: action: android.bluetooth.device.action.ACL_DISCONNECTED 06-02 15:23:59.905 23935 23945 I WCNSS_FILTER: ibs_wcnss_bt_device_sleep: TX Awake, Sending SLEEP_IND

[当我检查原因码0x000e时,它说这是因为BT_HCI_OP_PIN_CODE_NEG_REPLY。但是我不知道为什么会出现原因代码?
提前感谢!Maulik
答案我找到了上述问题的解决方案。
问题是我称他为“ createBond”方法,因为我希望将其配对。但是我没有配对的设备只是简单地连接而不配对,所以我删除了配对代码,直接调用了gatt.connect()方法。
【蓝牙连接,原因码= 0x000e-Android】谢谢

    推荐阅读