BluetoothHelper
介绍:
安卓蓝牙操作库,把蓝牙请求封装像Http一样,几行代码就能与物联网智能硬件设备交互
运行效果:
使用说明:
特点
-
封装了常用的蓝牙相关操作, 将它们与Activity解耦, 比如搜索蓝牙设备等.
-
btHelperClient.searchDevices(listener)
-
重写IO流操作, 将蓝牙发送指令操作包装得像HTTP一样, 你可以直接将指令发送出去(不需要考虑设备是否连接问题, 尤其是智能硬件设备)然后像HTTP一样获得响应码和返回体.
-
btHelperClient.sendMessage("20:15:03:18:08:63", item, true, new OnSendMessageListener() { @Override public void onSuccess(int status, String response) { } ... });
依赖
有两种方式可供选择:
-
克隆该项目,并设置为依赖
-
只需要将下面的脚本加入到 build.gradle:
-
// 把这个加入到项目根 build.gradle allprojects { repositories { ... maven { url "https://jitpack.io" } } } // 这个加入到应用module的 build.gradle dependencies { compile 'com.github.a-voyager:BluetoothHelper:f71d40a98b' }
用法
-
获取实例 使用Context来进行初始化
-
btHelperClient = BtHelperClient.from(MainActivity.this);
-
向远程蓝牙设备发送指令 异步发送消息,并在主线程回调。 参数含义: 设备的Mac地址, 消息对象, 是否需要获取响应信息, 监听器.
-
MessageItem item = new MessageItem("Hello"); btHelperClient.sendMessage("20:15:03:18:08:63", item, true, new OnSendMessageListener() { @Override public void onSuccess(int status, String response) { // 当发送成功,同时获得响应体时回调 // 状态码: 描述响应是否正确. // 1代表响应回复内容正确, -1代表响应内容不正确, 即数据损坏 // 响应信息: 来自远程蓝牙设备的响应内容, 可以通过response.getBytes()获取字节数组 } @Override public void onConnectionLost(Exception e) { e.printStackTrace(); } @Override public void onError(Exception e) { e.printStackTrace(); } });
-
关闭连接 只需要调用 close() 方法
-
@Override protected void onDestroy() { super.onDestroy(); btHelperClient.close();
-
更多程序接口
-
搜索蓝牙设备 搜索蓝牙设备调用 searchDevices() 方法即可
-
btHelperClient.searchDevices(new OnSearchDeviceListener() { @Override public void onStartDiscovery() { // 在进行搜索前回调 Log.d(TAG, "onStartDiscovery()"); } @Override public void onNewDeviceFounded(BluetoothDevice device) { // 当寻找到一个新设备时回调 Log.d(TAG, "new device: " + device.getName() + " " + device.getAddress()); } @Override public void onSearchCompleted(List<BluetoothDevice> bondedList, List<BluetoothDevice> newList) { // 当搜索蓝牙设备完成后回调 Log.d(TAG, "SearchCompleted: bondedList" + bondedList.toString()); Log.d(TAG, "SearchCompleted: newList" + newList.toString()); } @Override public void onError(Exception e) { e.printStackTrace(); } })
-
设置过滤器 使用过滤器来过滤掉那些硬件设备出现差错的数据
-
btHelperClient.setFilter(new Filter() { @Override public boolean isCorrect(String response) { return response.trim().length() >= 5; } });
已下载
0