BleAgent蓝牙门禁SDK文档

个人笔记-蓝牙门禁sdk文档

导入包

//以下是在主module的build
implementation 'com.zhy.core:BleLib:1.2.3'  //此版本已经引用基础包

//以下是在项目根目录的build
allprojects {
    repositories {
        ...
        maven { url 'http://*.*.*.*:*/nexus/content/repositories/zhy' }
        
    }
}

在Application进行初始化

  • Application需要继承CoreLib的ApplicationCore
  • 初始化方法init
 @Override
    public void onCreate() {
        super.onCreate();
        if (shouldInit()) {
            ...
            //初始化蓝牙门禁的api
            BleAgent.init(this,appid,bleBaseUrl);
      }
  }
  • 防止多次初始化
 /**
     * 防止多次初始化
     *
     * @return
     */
    public boolean shouldInit() {
        ActivityManager am = ((ActivityManager) getSystemService(Context.ACTIVITY_SERVICE));
        List processInfos = am.getRunningAppProcesses();
        String mainProcessName = getPackageName();
        int myPid = android.os.Process.myPid();
        for (ActivityManager.RunningAppProcessInfo info : processInfos) {
            if (info.pid == myPid && mainProcessName.equals(info.processName)) {
                return true;
            }
        }
        return false;
    }

页面是BluetoothDoorNewFragment

这里请自行引入页面到Activity即可
示例代码:

/**
 * Desc:  
* Author: YJG
* Email: [email protected]
* Date: 2018/8/6
*/ public class BluetoothNewActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.common_content); initView(); } private void initView() { setTitle("蓝牙开门"); FragmentManager fm = getSupportFragmentManager(); FragmentTransaction ft=fm.beginTransaction(); BluetoothDoorNewFragment bluetoothDoorNewFragment =new BluetoothDoorNewFragment(); ft.replace(R.id.content, bluetoothDoorNewFragment); ft.commit(); } }

登陆后需要执行以下操作

  • LoginActivity页面的操作
//设置用户token到蓝牙门禁模块
BleAgent.setLoginToken(token);
BleAgent.setLoginMobile(mobile);//数字蓝牙使用到
  • MainActivity页面onResume的操作
if (!Utils.isBackground()) {
  //这边是未了兼容升级app的时候,用户已经登录的情况,没有走登录的逻辑,没有设置token,导致请求已  经授权的设备列表没有token
  BleAgent.setLoginToken(token);
  //上报开门记录用到
  BleAgent.setAccountId(accountId);
  //数字蓝牙使用到
  BleAgent.setLoginMobile(mobile);
  //请求已授权的蓝牙设备列表
  BleServer.reqAuthDevices();
  //补上传蓝牙门禁未上传的开门记录
  BleServer.postUnPostRecordList();
}

这里需要注意不是每次onResume都执行上面代码,app不在后台,即重新启动才需要,在诸如返回MainActivity时的OnResume情况是不需要的。

APP账号退出重新登录的时候

执行sp文件清除,调用下面方法

BleAgent.logoutBle();

你可能感兴趣的:(BleAgent蓝牙门禁SDK文档)