android开发之蓝牙配对连接的方法

本文介绍了在Android中进行蓝牙连接时遇到的问题及解决方案,包括通过UUID创建BluetoothSocket、自动配对以及利用反射获取BluetoothSocket的方法。强调了蓝牙配对和连接的区别,并指出通过UUID连接前应确保设备已配对。
摘要由CSDN通过智能技术生成

在做Android蓝牙串口连接的时候一般会使用

[java]  view plain   copy
  print ? 在CODE上查看代码片 派生到我的代码片
  1. BluetoothSocket tmp = null;  
  2. // Get a BluetoothSocket for a connection with the  
  3. // given BluetoothDevice  
  4. try {  
  5.          tmp = device.createRfcommSocketToServiceRecord(MY_UUID);  
  6. catch (IOException e) {  
  7.     Log.e(TAG, "create() failed", e);  
  8. }  

然后是tmp赋给BluetoothSocket,接着调用connect方法进行蓝牙设备的连接。

可是 BluetoothSocket 的connect方法本身就会报很多异常错误。

以下根据对蓝牙开发的一点研究可通过以下方法解决:

方法1.先进行蓝牙自动配对,配对成功,通过UUID获得BluetoothSocket,然后执行connect()方法。

方法2.通过UUID获得BluetoothSocket,然后先根据mDevice.getBondState()进行判断是否需要配对,最后执行connnect()方法。

 

[java]  view plain   copy
  print ? 在CODE上查看代码片 派生到我的代码片
  1. private class ConnectThread extends Thread {  
  2.     String macAddress = "";  
  3.   
  4.     public ConnectThread(String mac) {  
  5.         macAddress = mac;  
  6.     }  
  7.   
  8.     public void run() {  
  9.         connecting = true;  
  10.         connected = false;  
  11.         if(mBluetoothAdapter == null){  
  12.             mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();  
  13.         }  
  14.         mBluetoothDevice = mBluetoothAdapter.getRemoteDevice(macAddress);  
  15.         mBluetoothAdapter.cancelDiscovery();  
  16.         try {  
  17.             socket = mBluetoothDevice.createRfcommSocketToServiceRecord(uuid);  
  18.               
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值