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