1、Android在传输数据过程中,默认不超过20个字节,如果超过20字节的数据,应该分包进行传输。
2、数据包在传输过程中,有延时,在实际应用中收发包应该增加延时的处理。在5.0android版本(api 21)做了放开处理,可以进行自己设置(大小)的处理。建议还是分包进行收发,因为当无法知道外部蓝牙硬件设备最大的收发,可能会因为数据过大,而设备内存过小,造成丢包或者其他问题的出现。
3、扫描附近蓝牙应该设置定时处理,当超过一定时间取消蓝牙搜索,避免因为持续搜索造成性能损耗。切记,连接蓝牙设备前一定要进行停止蓝牙搜索,否则会造成蓝牙信号的不稳定,会出现自动断开的现象。
4、关闭通信时,一定要调用BluetoothGatt的disconnect()和close()方法,并且将BluetoothGatt和BluetoothGattService赋值null。
5.0以后蓝牙连接的写法:
private BluetoothAdapter.LeScanCallback leScanCallback = new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) {
if (Looper.myLooper() == Looper.getMainLooper()) {
// Android 5.0 及以上
connect(device);
} else {
// Android 5.0 以下
runOnUiThread(new Runnable() {
@Override
public void run() {
connect(device);
}
});
}
}
};
判断是否具有相对应的属性:
/**
* @return Returns true if property is writable
*/
pu