今天给大家介绍一个小的框架,自己小小封装的一个jar包,用来做Android 4.0蓝牙通信的,不需要写繁杂的代码就能实现蓝牙通信,不包含Descriptor,目前只有service跟Characteristic通信
使用方法超级简单:
BleClient bleClient = new BleClient();
bleClient.init(this);
//设置过滤的蓝牙名称
bleClient.setBluetoothName(“”);
//设置过滤的蓝牙名称,可设置两个
bleClient.setScondBluetoothName(“”);
//设置服务的UUID以及特征的UUID
bleClient.initUUID("xxxxxxx-xxxx-xxxx-xxxx-xxxxx", "xxxxx-xxxx-xxxx-xxxx-xxxxxx");
//设置过滤设备id(可不使用)
bleClient.setFilterDeviceId(filter_deviceId);
以上就是一个基本的配置 接下来:
//监听蓝牙设备的信号强度
bleClient.setOnRssiListener(new BleClient.OnBleRSSIListener() {
@Override
public void onRSSI(int rssi) {
}
});
//设置蓝牙设备的监听
bleClient.setOnBleListener(new BleClient.OnBleListener() {
//数据回调
@Override
public void onResponse(byte[] bytes) {
}
//断开连接
@Override
public void onDisconnect() {
}
//超时
@Override
public void onScanOvertime() {
}
//连接成功
@Override
public void onConnected() {
}
});
//开启扫描
bleClient.startScan();
以上的代码就可以远程连接了,6.0以上系统会提示位置权限,也会提示蓝牙开关,如果扫描不到,最好把GPS也开一下。 配置一下UUID,配置一下过滤的蓝牙名称基本OK了。
配置权限:
配置服务:
在onDestroy调用bleClient.close();//来释放资源。
bleClient.getDeviceAddress();//获取设备mac地址
bleClient.getDeviceName();//获取设备名称
bleClient.disconnect();//设备断开连接
bleClient.startScan(long scanTimeOut);//扫描并设置超时时长,单位为毫秒
bleClient.writeData(byte[] data);//发送数据
…等等