// 1. 应用初始化时预初始化SDK
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
DreisamLib.preInit(this);
// 2. 初始化SDK
DreisamLibBuilder builder = new DreisamLibBuilder();
builder.setHideLog(false);
DreisamLib.initSDK("your_appdid", builder);
}
}
// 3. 检查连接前置条件
ConnectCtrl.getInstance().checkPreConditions(new OnPreCheckListener() {
@Override
public void onSystemPermissionChanged(boolean granted, List<String> missingPermissions) {
if (granted) {
// 权限通过,执行登录
login();
} else {
// 处理权限缺失
requestPermissions(missingPermissions);
}
}
});
// 4. 登录
private void login() {
ConnectCtrl.getInstance().login("cn", "user_token", new ValueCallBack<LoginInfoModel>() {
@Override
public void succ(LoginInfoModel loginInfoModel) {
if (!loginInfoModel.hasAvailableDevice) {
// 无可用设备,去绑定设备
bindDevice();
}else{
// 有可用设备,去连接
connectDevice()
}
}
@Override
public void fail(int code, String msg) {
// 登录失败处理
}
});
}
// 5. 绑定设备
private void bindDevice() {
InnerConnectCtrl.getInstance().bindDevice("device_name", new OnBindListener() {
@Override
public void onBindFail(int code, String msg) {
// 绑定失败处理
}
@Override
public void onBindSuccess(DrisamDeviceModel deviceInfoModel) {
// 绑定成功,连接设备
connectDevice();
}
@Override
public void onBinding(DreisamBindingEnum bindingCode) {
// 绑定中状态更新
}
});
}
// 6. 连接设备并监听状态
private void connectDevice() {
// 监听数据
dataListener();
// 设置连接状态监听
InnerConnectCtrl.getInstance().connectListener(new OnConnectListener() {
@Override
public void onConnecState(ConnectingState state) {
// 连接状态变化处理
}
@Override
public void onConnectSuccess() {
}
});
// 连接设备
InnerConnectCtrl.getInstance().connectDevice();
}
// 7. 数据监听
private void dataListener() {
// 监听实时血糖数据
InnerConnectCtrl.getInstance().realTimeDataCallBack(new OnAnalzeDatatListener() {
@Override
public void analzeData(GlucoseBean data) {
// 处理实时血糖数据
Log.d("Glucose", data.printMessage());
}
});
// 监听数据同步
InnerConnectCtrl.getInstance().setSyncDatasListener(new OnSyncDatasCallBack() {
@Override
public void onSyncStart(int totalCount) {
// 同步开始
}
@Override
public void onSyncProgress(int progress) {
// 同步进度更新
}
@Override
public void onSyncComplete(boolean success, List<GlucoseBean> datas) {
// 同步完成,处理历史数据
}
});
}