2017-2-16(android蓝牙连接和开发)
首先:
在Manifest.xml文件需要打开权限:
另外6.0需要增加以下这两个权限:
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH" />
第一个是允许一个程序访问精确位置(如GPS)
第二个是允许一个程序访问CellID或WiFi热点来获取粗略的位置
现在暂时发现只是6.0需要增加这两个权限,7.0测试过不用增加;
网上说6.0以后还要动态增加这两个权限,但我在开发过程测试6.0手机并没有发现需要动态增加两个权限。
进行蓝牙开发:
1、获取本地蓝牙实例:
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
获取后判断设备是否开启蓝牙;没有强制开启蓝牙设备
开启后进行搜索蓝牙设备:
mBluetoothAdapter.startDiscovery();
这里需要开启广播注册广播查找蓝牙设备
mBuBluetoothReciever = new BluetoothReciever();
// 注册BroadcastReceiver
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(mBuBluetoothReciever, filter); // 不要忘了之后解除绑定
广播接收:
有个适配器装载搜索到的蓝牙设备:
点击蓝牙设备进行连接:
这里的connectBluetooth(bluetoothDevice);是连接外设,需要外设提供API这里,外设的代码是:(不同的设备就是不同的连接代码,这个要看外设提供的API)
以上基本就是一次完整的蓝牙连接,从蓝牙开启 --> 蓝牙搜索 --> 蓝牙连接,
下面再说一种情况就是,连接已匹配过的设备:
android提供的API是:
获取已匹配的设备进行连接
点击选中的设备进行连接,代码跟之前的一样根据外设不同而不同