/SDK-Band-Android

轻牛安卓手环SDK

Primary LanguageJava

轻牛蓝牙Android SDK

快速集成

混淆配置(proguard-rules)

  • -keep class com.qingniu.scale.model.BleScaleData{*;}

具体操作文档

具体集成说明文档

AndroidX适配

适配AndroidX的手环SDK

Android Studio 线上依赖

  • 在你工程的根目录下的 build.gradle添加jitpack支持
    allprojects {
     	repositories {
     		...
     		maven { url 'https://jitpack.io' }
     	}
     }
    
  • 在你的module的根目录下的build.gradle添加依赖
     <!--这里的版本号,1.1.0-beta9 可以指定为任意release版本-->
     <!--如果希望一直使用最新版本可以替换 1.1.0-beta9 为 master-SNAPSHOT -->
     dependencies {
             ...
             compile 'com.github.YolandaQingniu:SDK-Band-Android:1.1.0-beta9'
     }
    

本地依赖

  • 下载最新的jar和so库,导入下载的jar和so库

  • 在清单文件中申请蓝牙权限、位置权限、网络权限(离线SDK不需要)

    <!--蓝牙权限-->
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <!--6.0及之后需要动态申请-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <!--用来存储日志-->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!--如果是在线的sdk需要网络权限-->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 前台服务权限,防止应用退到后台手环断开连接,1.0.9 之前版本需要,1.0.9之后不需要-->
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
    <!-- 1.0.9 之前版本不需要,1.0.9之后需要-->
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    
    
  • 需要在AndroidManifest.xml注册SDK中的组件:

    
     <!-- 1.0.9 之前版本配置-->
    <service android:name="com.qingniu.qnble.scanner.BleScanService"/>
    <service android:name="com.qingniu.wrist.ble.WristBleService"/>
    <service android:name="com.qingniu.scale.measure.ble.ScaleBleService" />
    <service android:name="com.qingniu.scale.measure.broadcast.ScaleBroadcastService"/>
    
    
     <!-- 1.0.9 之后版本(包含1.0.9版本)配置-->
      <service android:name="com.qingniu.qnble.scanner.BleScanService" android:permission="android.permission.BIND_JOB_SERVICE"/>
      <service android:name="com.qingniu.wrist.ble.WristBleService" android:permission="android.permission.BIND_JOB_SERVICE"/>
      <service android:name="com.qingniu.scale.measure.ble.ScaleBleService" android:permission="android.permission.BIND_JOB_SERVICE"/>
      <service android:name="com.qingniu.scale.wsp.ble.ScaleWspBleService" android:permission="android.permission.BIND_JOB_SERVICE" />
      <service android:name="com.qingniu.scale.measure.broadcast.ScaleFoodBroadcastService" android:permission="android.permission.BIND_JOB_SERVICE" />
      <service android:name="com.qingniu.scale.measure.broadcast.ScaleBroadcastService" android:permission="android.permission.BIND_JOB_SERVICE"/>
    
    
  • SDK中使用到了v4包的资源,开发者项目中需要引入v4包的资源

注意事项

  • targetSdkVersion 在23及以上,需要先获取定位权限,才能扫描到设备,需要开发者自己申请
  • 部分手机上使用蓝牙功能需要开启GPS才能扫描到设备,SDK中会输出GPS未开启的日志,但不会回调错误,开发者可以自主进行限制
  • 如果你的项目是多进程的,建议限制在主进程才进行SDK的初始化

常见问题

具体使用参考API文档Demo,以下为一些常见问题。

  1. 初始化提示appid错误
    • 检查初始化文件和使用的appid是否匹配
    • 检查引入的SDK是否是最新的
  2. 扫描设备调用成功,但是一直没有设备回调,且无错误回调
    • 检查所扫描的设备,是否已经被其他人连接
    • 部分手机需要开启GPS才能扫描到设备,请检查手机GPS是否开启
  3. 连接设备一直无法成功或者成功后很快就断开连接
    • 检查设备是否被其他人连接了
    • 在系统蓝牙中查看是否当前连接的设备已经被配对,如果已经配对,需要取消配对
    • 部分手机需要先扫描才能连接成功,先扫描设备再进行连接
  4. SDK返回无定位权限错误
    • 检查是否对ACCESS_COARSE_LOCATIONACCESS_FINE_LOCATION都进行了申请,SDK中对2个权限都进行了校验
    • 是否编译版本26以及以上,如果是,2个权限都需要单独申请(8.0的新特性)

提示:遇到无法定位的问题,希望开发者能第一时间提供日志,以便我们尽快找到问题