implementation 'androidx.constraintlayout:constraintlayout:1.1.3' | implementation 'androidx.constraintlayout:constraintlayout:1.1.3' | ||||
testImplementation 'junit:junit:4.12' | testImplementation 'junit:junit:4.12' | ||||
implementation 'com.github.elinkthings:AILinkSDKRepositoryAndroid:1.6.9' | implementation 'com.github.elinkthings:AILinkSDKRepositoryAndroid:1.6.9' | ||||
implementation 'com.github.elinkthings:AILinkSDKParsingLibraryAndroid:1.5.2' | |||||
implementation 'com.github.elinkthings:AILinkSDKParsingLibraryAndroid:1.5.3' | |||||
implementation 'androidx.recyclerview:recyclerview:1.1.0' | implementation 'androidx.recyclerview:recyclerview:1.1.0' | ||||
implementation 'com.jakewharton:butterknife:10.2.0' | implementation 'com.jakewharton:butterknife:10.2.0' | ||||
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.0' | annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.0' |
*/ | */ | ||||
protected void startScanBle(long timeOut){ | protected void startScanBle(long timeOut){ | ||||
if (mBluetoothService!=null){ | if (mBluetoothService!=null){ | ||||
mBluetoothService.scanLeDevice(timeOut, BleConfig.UUID_SERVER); | |||||
mBluetoothService.scanLeDevice(timeOut, BleConfig.UUID_SERVER_AILINK); | |||||
} | } | ||||
} | } | ||||
import com.pingwang.bluetoothlib.listener.OnScanFilterListener; | import com.pingwang.bluetoothlib.listener.OnScanFilterListener; | ||||
import com.pingwang.bluetoothlib.utils.BleDensityUtil; | import com.pingwang.bluetoothlib.utils.BleDensityUtil; | ||||
import com.pingwang.bluetoothlib.utils.BleLog; | import com.pingwang.bluetoothlib.utils.BleLog; | ||||
import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.TimeUtils; | |||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.List; | import java.util.List; | ||||
import java.util.UUID; | import java.util.UUID; | ||||
import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.TimeUtils; | |||||
import androidx.annotation.Nullable; | import androidx.annotation.Nullable; | ||||
import cn.net.aicare.modulelibrary.module.BloodOxygen.BroadcastBloodOxygenBleConfig; | import cn.net.aicare.modulelibrary.module.BloodOxygen.BroadcastBloodOxygenBleConfig; | ||||
import cn.net.aicare.modulelibrary.module.BloodOxygen.BroadcastBloodOxygenDeviceData; | import cn.net.aicare.modulelibrary.module.BloodOxygen.BroadcastBloodOxygenDeviceData; | ||||
mDevice = BroadcastBloodOxygenDeviceData.getInstance(); | mDevice = BroadcastBloodOxygenDeviceData.getInstance(); | ||||
mDevice.setOnNotifyData(this); | mDevice.setOnNotifyData(this); | ||||
mBluetoothService.setOnScanFilterListener(this); | mBluetoothService.setOnScanFilterListener(this); | ||||
mBluetoothService.scanLeDevice(0, BleConfig.UUID_SERVER_BROADCAST); | |||||
mBluetoothService.scanLeDevice(0, BleConfig.UUID_SERVER_BROADCAST_AILINK); | |||||
} | } | ||||
} | } | ||||
import com.pingwang.bluetoothlib.utils.BleDensityUtil; | import com.pingwang.bluetoothlib.utils.BleDensityUtil; | ||||
import com.pingwang.bluetoothlib.utils.BleLog; | import com.pingwang.bluetoothlib.utils.BleLog; | ||||
import com.pingwang.bluetoothlib.utils.BleStrUtils; | import com.pingwang.bluetoothlib.utils.BleStrUtils; | ||||
import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.TimeUtils; | |||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.List; | import java.util.List; | ||||
import java.util.UUID; | import java.util.UUID; | ||||
import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.TimeUtils; | |||||
import androidx.annotation.Nullable; | import androidx.annotation.Nullable; | ||||
import cn.net.aicare.modulelibrary.module.BroadcastScale.BroadcastScaleBleConfig; | import cn.net.aicare.modulelibrary.module.BroadcastScale.BroadcastScaleBleConfig; | ||||
import cn.net.aicare.modulelibrary.module.BroadcastScale.BroadcastScaleDeviceData; | import cn.net.aicare.modulelibrary.module.BroadcastScale.BroadcastScaleDeviceData; | ||||
mDevice = BroadcastScaleDeviceData.getInstance(); | mDevice = BroadcastScaleDeviceData.getInstance(); | ||||
mDevice.setOnNotifyData(this); | mDevice.setOnNotifyData(this); | ||||
mBluetoothService.setOnScanFilterListener(this); | mBluetoothService.setOnScanFilterListener(this); | ||||
mBluetoothService.scanLeDevice(0, BleConfig.UUID_SERVER_BROADCAST); | |||||
mBluetoothService.scanLeDevice(0, BleConfig.UUID_SERVER_BROADCAST_AILINK); | |||||
} | } | ||||
} | } | ||||
import androidx.annotation.Nullable; | import androidx.annotation.Nullable; | ||||
import cn.net.aicare.modulelibrary.module.EightBodyfatscale.EightBodyFatBleDeviceData; | import cn.net.aicare.modulelibrary.module.EightBodyfatscale.EightBodyFatBleDeviceData; | ||||
import cn.net.aicare.modulelibrary.module.EightBodyfatscale.EightBodyfatUtil; | |||||
import cn.net.aicare.modulelibrary.module.EightBodyfatscale.EightBodyFatUtil; | |||||
public class EightBodyfatActivity extends BleBaseActivity implements View.OnClickListener, OnCallbackBle, EightBodyFatBleDeviceData.EightBodyFatCallback { | public class EightBodyfatActivity extends BleBaseActivity implements View.OnClickListener, OnCallbackBle, EightBodyFatBleDeviceData.EightBodyFatCallback { | ||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { | public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { | ||||
if (isChecked) { | if (isChecked) { | ||||
if (mEightBodyFatBleDeviceData != null) | if (mEightBodyFatBleDeviceData != null) | ||||
mEightBodyFatBleDeviceData.setWeightUnit(EightBodyfatUtil.KG); | |||||
mEightBodyFatBleDeviceData.setWeightUnit(EightBodyFatUtil.KG); | |||||
} | } | ||||
} | } | ||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { | public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { | ||||
if (isChecked) { | if (isChecked) { | ||||
if (mEightBodyFatBleDeviceData != null) | if (mEightBodyFatBleDeviceData != null) | ||||
mEightBodyFatBleDeviceData.setWeightUnit(EightBodyfatUtil.JIN); | |||||
mEightBodyFatBleDeviceData.setWeightUnit(EightBodyFatUtil.JIN); | |||||
} | } | ||||
} | } | ||||
}); | }); | ||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { | public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { | ||||
if (isChecked) { | if (isChecked) { | ||||
if (mEightBodyFatBleDeviceData != null) | if (mEightBodyFatBleDeviceData != null) | ||||
mEightBodyFatBleDeviceData.setWeightUnit(EightBodyfatUtil.ST); | |||||
mEightBodyFatBleDeviceData.setWeightUnit(EightBodyFatUtil.ST); | |||||
} | } | ||||
} | } | ||||
}); | }); | ||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { | public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { | ||||
if (isChecked) { | if (isChecked) { | ||||
if (mEightBodyFatBleDeviceData != null) | if (mEightBodyFatBleDeviceData != null) | ||||
mEightBodyFatBleDeviceData.setWeightUnit(EightBodyfatUtil.LB); | |||||
mEightBodyFatBleDeviceData.setWeightUnit(EightBodyFatUtil.LB); | |||||
} | } | ||||
} | } | ||||
}); | }); | ||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { | public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { | ||||
if (isChecked) { | if (isChecked) { | ||||
if (mEightBodyFatBleDeviceData != null) | if (mEightBodyFatBleDeviceData != null) | ||||
mEightBodyFatBleDeviceData.setTempUnit(EightBodyfatUtil.C); | |||||
mEightBodyFatBleDeviceData.setTempUnit(EightBodyFatUtil.C); | |||||
} | } | ||||
} | } | ||||
}); | }); | ||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { | public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { | ||||
if (isChecked) { | if (isChecked) { | ||||
if (mEightBodyFatBleDeviceData != null) | if (mEightBodyFatBleDeviceData != null) | ||||
mEightBodyFatBleDeviceData.setTempUnit(EightBodyfatUtil.F); | |||||
mEightBodyFatBleDeviceData.setTempUnit(EightBodyFatUtil.F); | |||||
} | } | ||||
} | } | ||||
}); | }); | ||||
@Override | @Override | ||||
public void onState(int type, int typeState, int result) { | public void onState(int type, int typeState, int result) { | ||||
switch (type) { | switch (type) { | ||||
// case EightBodyfatUtil.WEIGHING: | |||||
// case EightBodyFatUtil.WEIGHING: | |||||
// switch (typeState) { | // switch (typeState) { | ||||
// case EightBodyfatUtil.WEIGHT_REAL_TIME_WEIGH: | |||||
// case EightBodyFatUtil.WEIGHT_REAL_TIME_WEIGH: | |||||
// loglist.add(0, "实时体重"); | // loglist.add(0, "实时体重"); | ||||
// break; | // break; | ||||
// case EightBodyfatUtil.WEIGHT_STABILIZATION_WEIGHT: | |||||
// case EightBodyFatUtil.WEIGHT_STABILIZATION_WEIGHT: | |||||
// loglist.add(0, "稳定体重"); | // loglist.add(0, "稳定体重"); | ||||
// } | // } | ||||
// break; | // break; | ||||
case EightBodyfatUtil.IMPEDANCE: | |||||
case EightBodyFatUtil.IMPEDANCE: | |||||
String adc = ""; | String adc = ""; | ||||
switch (typeState) { | switch (typeState) { | ||||
case EightBodyfatUtil.IMPEDANCE_MEASUREMENT: | |||||
case EightBodyFatUtil.IMPEDANCE_MEASUREMENT: | |||||
adc = "阻抗测量中"; | adc = "阻抗测量中"; | ||||
break; | break; | ||||
case EightBodyfatUtil.IMPEDANCE_SUCCESS: | |||||
case EightBodyFatUtil.IMPEDANCE_SUCCESS: | |||||
//阻抗测量成功 | //阻抗测量成功 | ||||
adc = "阻抗测量成功"; | adc = "阻抗测量成功"; | ||||
break; | break; | ||||
case EightBodyfatUtil.IMPEDANCE_FAILED: | |||||
case EightBodyFatUtil.IMPEDANCE_FAILED: | |||||
adc = "阻抗测量失败"; | adc = "阻抗测量失败"; | ||||
//阻抗测量失败 | //阻抗测量失败 | ||||
break; | break; | ||||
case EightBodyfatUtil.IMPEDANCE_FINISH: | |||||
case EightBodyFatUtil.IMPEDANCE_FINISH: | |||||
//阻抗测量完成 | //阻抗测量完成 | ||||
adc = "阻抗测量完成"; | adc = "阻抗测量完成"; | ||||
break; | break; | ||||
} | } | ||||
switch (result) { | switch (result) { | ||||
case EightBodyfatUtil.IMPEDANCE_FOOT: | |||||
case EightBodyFatUtil.IMPEDANCE_FOOT: | |||||
adc = adc + "双脚阻抗"; | adc = adc + "双脚阻抗"; | ||||
break; | break; | ||||
case EightBodyfatUtil.IMPEDANCE_HAND: | |||||
case EightBodyFatUtil.IMPEDANCE_HAND: | |||||
adc = adc + "双手阻抗"; | adc = adc + "双手阻抗"; | ||||
break; | break; | ||||
case EightBodyfatUtil.IMPEDANCE_BODY: | |||||
case EightBodyFatUtil.IMPEDANCE_BODY: | |||||
adc = adc + "躯干阻抗"; | adc = adc + "躯干阻抗"; | ||||
break; | break; | ||||
case EightBodyfatUtil.IMPEDANCE_L_HAND: | |||||
case EightBodyFatUtil.IMPEDANCE_L_HAND: | |||||
adc = adc + "左手阻抗"; | adc = adc + "左手阻抗"; | ||||
break; | break; | ||||
case EightBodyfatUtil.IMPEDANCE_R_HAND: | |||||
case EightBodyFatUtil.IMPEDANCE_R_HAND: | |||||
adc = adc + "右手阻抗"; | adc = adc + "右手阻抗"; | ||||
break; | break; | ||||
case EightBodyfatUtil.IMPEDANCE_L_FOOT: | |||||
case EightBodyFatUtil.IMPEDANCE_L_FOOT: | |||||
adc = adc + "左脚阻抗"; | adc = adc + "左脚阻抗"; | ||||
break; | break; | ||||
case EightBodyfatUtil.IMPEDANCE_R_FOOT: | |||||
case EightBodyFatUtil.IMPEDANCE_R_FOOT: | |||||
adc = adc + "右脚阻抗"; | adc = adc + "右脚阻抗"; | ||||
break; | break; | ||||
case EightBodyfatUtil.IMPEDANCE_L_BODY: | |||||
case EightBodyFatUtil.IMPEDANCE_L_BODY: | |||||
adc = adc + "左驱干"; | adc = adc + "左驱干"; | ||||
break; | break; | ||||
case EightBodyfatUtil.IMPEDANCE_R_BODY: | |||||
case EightBodyFatUtil.IMPEDANCE_R_BODY: | |||||
adc = adc + "右躯干"; | adc = adc + "右躯干"; | ||||
break; | break; | ||||
case EightBodyfatUtil.IMPEDANCE_R_HAND_L_FOOT: | |||||
case EightBodyFatUtil.IMPEDANCE_R_HAND_L_FOOT: | |||||
adc = adc + "右手左脚"; | adc = adc + "右手左脚"; | ||||
break; | break; | ||||
case EightBodyfatUtil.IMPEDANCE_L_HAND_R_FOOT: | |||||
case EightBodyFatUtil.IMPEDANCE_L_HAND_R_FOOT: | |||||
adc = adc + "左手右脚"; | adc = adc + "左手右脚"; | ||||
break; | break; | ||||
default: | default: | ||||
loglist.add(0, adc); | loglist.add(0, adc); | ||||
break; | break; | ||||
case EightBodyfatUtil.HEART_RATE: | |||||
case EightBodyFatUtil.HEART_RATE: | |||||
switch (typeState) { | switch (typeState) { | ||||
case EightBodyfatUtil.HEART_RATE_MEASUREMENT: | |||||
case EightBodyFatUtil.HEART_RATE_MEASUREMENT: | |||||
//心率测量完成 | //心率测量完成 | ||||
loglist.add(0, "心率测量中"); | loglist.add(0, "心率测量中"); | ||||
break; | break; | ||||
case EightBodyfatUtil.HEART_RATE_SUCCESS: | |||||
case EightBodyFatUtil.HEART_RATE_SUCCESS: | |||||
loglist.add(0, "心率测量成功"); | loglist.add(0, "心率测量成功"); | ||||
//心率测量成功 | //心率测量成功 | ||||
break; | break; | ||||
case EightBodyfatUtil.HEART_RATE_FAILED: | |||||
case EightBodyFatUtil.HEART_RATE_FAILED: | |||||
loglist.add(0, "心率测量失败"); | loglist.add(0, "心率测量失败"); | ||||
//心率测量失败 | //心率测量失败 | ||||
break; | break; | ||||
} | } | ||||
break; | break; | ||||
case EightBodyfatUtil.TEMP_MEASUREMENT: | |||||
case EightBodyFatUtil.TEMP_MEASUREMENT: | |||||
loglist.add(0, "测量温度"); | loglist.add(0, "测量温度"); | ||||
break; | break; | ||||
case EightBodyfatUtil.MEASUREMENT_END: | |||||
case EightBodyFatUtil.MEASUREMENT_END: | |||||
loglist.add(0, "测量完成"); | loglist.add(0, "测量完成"); | ||||
//测量完成 | //测量完成 | ||||
break; | break; | ||||
case EightBodyfatUtil.MUC_CALL_BACK_RESULT: | |||||
case EightBodyFatUtil.MUC_CALL_BACK_RESULT: | |||||
switch (typeState) { | switch (typeState) { | ||||
case EightBodyfatUtil.APP_CMD_CALIBRATION: | |||||
case EightBodyFatUtil.APP_CMD_CALIBRATION: | |||||
//校验 | //校验 | ||||
if (result == EightBodyfatUtil.SUCCESS) { | |||||
if (result == EightBodyFatUtil.SUCCESS) { | |||||
loglist.add(0, "校验成功"); | loglist.add(0, "校验成功"); | ||||
} else if (result == EightBodyfatUtil.FAILED) { | |||||
} else if (result == EightBodyFatUtil.FAILED) { | |||||
loglist.add(0, "校验失败"); | loglist.add(0, "校验失败"); | ||||
} else { | } else { | ||||
loglist.add(0, "校验中"); | loglist.add(0, "校验中"); | ||||
} | } | ||||
break; | break; | ||||
case EightBodyfatUtil.APP_CMD_TEMP_UNIT: | |||||
if (result == EightBodyfatUtil.SUCCESS) { | |||||
case EightBodyFatUtil.APP_CMD_TEMP_UNIT: | |||||
if (result == EightBodyFatUtil.SUCCESS) { | |||||
loglist.add(0, "切换温度成功"); | loglist.add(0, "切换温度成功"); | ||||
} else if (result == EightBodyfatUtil.FAILED) { | |||||
} else if (result == EightBodyFatUtil.FAILED) { | |||||
loglist.add(0, "切换温度失败"); | loglist.add(0, "切换温度失败"); | ||||
} else { | } else { | ||||
loglist.add(0, "切换温度中"); | loglist.add(0, "切换温度中"); | ||||
} | } | ||||
//切换温度 | //切换温度 | ||||
break; | break; | ||||
case EightBodyfatUtil.APP_CMD_WEIGHT_UNIT: | |||||
if (result == EightBodyfatUtil.SUCCESS) { | |||||
case EightBodyFatUtil.APP_CMD_WEIGHT_UNIT: | |||||
if (result == EightBodyFatUtil.SUCCESS) { | |||||
loglist.add(0, "切换体重单位成功"); | loglist.add(0, "切换体重单位成功"); | ||||
} else if (result == EightBodyfatUtil.FAILED) { | |||||
} else if (result == EightBodyFatUtil.FAILED) { | |||||
loglist.add(0, "切换体重单位失败"); | loglist.add(0, "切换体重单位失败"); | ||||
} else { | } else { | ||||
loglist.add(0, "切换体重单位中"); | loglist.add(0, "切换体重单位中"); | ||||
break; | break; | ||||
} | } | ||||
break; | break; | ||||
case EightBodyfatUtil.ERROR_CODE: | |||||
case EightBodyFatUtil.ERROR_CODE: | |||||
loglist.add(0, "错误码" + typeState); | loglist.add(0, "错误码" + typeState); | ||||
break; | break; | ||||
public void onWeight(int state, float weight, int unit, int decimal) { | public void onWeight(int state, float weight, int unit, int decimal) { | ||||
//测量状态 1实时体重 2稳定体重 | //测量状态 1实时体重 2稳定体重 | ||||
String stateStr = ""; | String stateStr = ""; | ||||
if (state == EightBodyfatUtil.WEIGHT_REAL_TIME_WEIGH) { | |||||
if (state == EightBodyFatUtil.WEIGHT_REAL_TIME_WEIGH) { | |||||
stateStr = "实时体重"; | stateStr = "实时体重"; | ||||
} else if (state == EightBodyfatUtil.WEIGHT_STABILIZATION_WEIGHT) { | |||||
} else if (state == EightBodyFatUtil.WEIGHT_STABILIZATION_WEIGHT) { | |||||
stateStr = "稳定体重"; | stateStr = "稳定体重"; | ||||
} | } | ||||
if (unit == EightBodyfatUtil.ST) { | |||||
loglist.add(0, "测量状态:" + state + stateStr + " 体重:" + EightBodyfatUtil.lbtostlb(weight) + " 体重单位:" + unit + " 小数点位" + decimal); | |||||
if (unit == EightBodyFatUtil.ST) { | |||||
loglist.add(0, "测量状态:" + state + stateStr + " 体重:" + EightBodyFatUtil.lbtostlb(weight) + " 体重单位:" + unit + " 小数点位" + decimal); | |||||
} else { | } else { | ||||
loglist.add(0, "测量状态:" + state + stateStr + " 体重:" + weight + " 体重单位:" + unit + " 小数点位" + decimal); | loglist.add(0, "测量状态:" + state + stateStr + " 体重:" + weight + " 体重单位:" + unit + " 小数点位" + decimal); | ||||
} | } |
* 服务Intent | * 服务Intent | ||||
*/ | */ | ||||
private Context mContext; | private Context mContext; | ||||
private EditText et_type; | |||||
private HeightDeviceData mBleDevice; | private HeightDeviceData mBleDevice; | ||||
private String mAddress; | private String mAddress; | ||||
private BleSendCmdUtil mBleSendCmdUtil; | private BleSendCmdUtil mBleSendCmdUtil; | ||||
findViewById(R.id.btnVersion).setOnClickListener(this); | findViewById(R.id.btnVersion).setOnClickListener(this); | ||||
findViewById(R.id.btnBattery).setOnClickListener(this); | findViewById(R.id.btnBattery).setOnClickListener(this); | ||||
findViewById(R.id.btn_get_did).setOnClickListener(this); | findViewById(R.id.btn_get_did).setOnClickListener(this); | ||||
et_type = findViewById(R.id.et_type); | |||||
cmdBtn(); | cmdBtn(); | ||||
} | } | ||||
sendBleBean.setHex(mBleSendCmdUtil.getDid()); | sendBleBean.setHex(mBleSendCmdUtil.getDid()); | ||||
mBleDevice.sendData(sendBleBean); | mBleDevice.sendData(sendBleBean); | ||||
break; | break; | ||||
case R.id.btn1: | |||||
String cmd = et_type.getText().toString().trim(); | |||||
SendMcuBean sendDataBean = new SendMcuBean(); | |||||
sendDataBean.setHex(type,cmd.getBytes()); | |||||
mBleDevice.sendData(sendDataBean); | |||||
break; | |||||
case R.id.clear: | case R.id.clear: | ||||
if (mList != null) | if (mList != null) | ||||
mList.clear(); | mList.clear(); |
@Override | @Override | ||||
protected void onCreate(Bundle savedInstanceState) { | protected void onCreate(Bundle savedInstanceState) { | ||||
super.onCreate(savedInstanceState); | super.onCreate(savedInstanceState); | ||||
AILinkSDK.getInstance().init(this, "28307eb356debd69", "00deaab8ea81acba686e725a2b"); | |||||
AILinkSDK.getInstance().init(this); | |||||
setContentView(R.layout.activity_main); | setContentView(R.layout.activity_main); | ||||
BleLog.init("", "", BuildConfig.DEBUG); | BleLog.init("", "", BuildConfig.DEBUG); | ||||
String version = getString(R.string.version) + ":" + BuildConfig.VERSION_NAME; | String version = getString(R.string.version) + ":" + BuildConfig.VERSION_NAME; | ||||
Button btn_baby = findViewById(R.id.btn_baby); | Button btn_baby = findViewById(R.id.btn_baby); | ||||
Button btn_height = findViewById(R.id.btn_height); | Button btn_height = findViewById(R.id.btn_height); | ||||
Button btn_ble = findViewById(R.id.btn_ble); | Button btn_ble = findViewById(R.id.btn_ble); | ||||
findViewById(R.id.btn_ble_test).setOnClickListener(listener); | |||||
findViewById(R.id.btnConnectTest).setOnClickListener(listener); | |||||
findViewById(R.id.btn_ad_weight).setOnClickListener(listener); | |||||
findViewById(R.id.btn_ble_weight).setOnClickListener(listener); | findViewById(R.id.btn_ble_weight).setOnClickListener(listener); | ||||
findViewById(R.id.btn_wifi_ble_tooth).setOnClickListener(listener); | findViewById(R.id.btn_wifi_ble_tooth).setOnClickListener(listener); | ||||
findViewById(R.id.wifi_config).setOnClickListener(listener); | findViewById(R.id.wifi_config).setOnClickListener(listener); | ||||
findViewById(R.id.eight_scale).setOnClickListener(listener); | findViewById(R.id.eight_scale).setOnClickListener(listener); | ||||
findViewById(R.id.btn_ota).setOnClickListener(listener); | findViewById(R.id.btn_ota).setOnClickListener(listener); | ||||
findViewById(R.id.btn_wristband).setOnClickListener(listener); | |||||
findViewById(R.id.glucometer).setOnClickListener(listener); | findViewById(R.id.glucometer).setOnClickListener(listener); | ||||
findViewById(R.id.btn_broadcast_scale).setOnClickListener(listener); | findViewById(R.id.btn_broadcast_scale).setOnClickListener(listener); | ||||
findViewById(R.id.btn_broadcast_blood_oxygen).setOnClickListener(listener); | findViewById(R.id.btn_broadcast_blood_oxygen).setOnClickListener(listener); | ||||
case R.id.btn_height: | case R.id.btn_height: | ||||
type = BleDeviceConfig.HEIGHT_METER; | type = BleDeviceConfig.HEIGHT_METER; | ||||
break; | break; | ||||
case R.id.btn_ad_weight: | |||||
type = BleDeviceConfig.WEIGHT_BODY_FAT_SCALE_AD; | |||||
break; | |||||
case R.id.btn_wifi_ble_weight: | case R.id.btn_wifi_ble_weight: | ||||
type = BleDeviceConfig.WEIGHT_BODY_FAT_SCALE_WIFI_BLE; | type = BleDeviceConfig.WEIGHT_BODY_FAT_SCALE_WIFI_BLE; | ||||
break; | break; | ||||
case R.id.btn_smart_mask: | case R.id.btn_smart_mask: | ||||
type = BleDeviceConfig.SMART_MASK; | type = BleDeviceConfig.SMART_MASK; | ||||
break; | break; | ||||
case R.id.btn_ble: | case R.id.btn_ble: | ||||
type = -1; | type = -1; | ||||
break; | break; | ||||
case R.id.btn_ble_test: | |||||
type = -2; | |||||
break; | |||||
case R.id.btn_ota: | case R.id.btn_ota: | ||||
type = -3; | type = -3; | ||||
break; | break; | ||||
case R.id.btn_wristband: | |||||
type = 65536; | |||||
break; | |||||
case R.id.btn_transmission: | case R.id.btn_transmission: | ||||
type=-4; | |||||
type = -4; | |||||
break; | break; | ||||
case R.id.eight_scale: | case R.id.eight_scale: | ||||
type = BleDeviceConfig.EIGHT_BODY_FAT_SCALE; | type = BleDeviceConfig.EIGHT_BODY_FAT_SCALE; | ||||
break; | break; | ||||
case R.id.btnConnectTest: | |||||
Intent intent = new Intent(MainActivity.this, aicare.net.cn.sdk.ailinksdkdemoandroid.ConnectBleTestActivity.class); | |||||
startActivity(intent); | |||||
return; | |||||
case R.id.wifi_config: | case R.id.wifi_config: | ||||
Intent intent1 = new Intent(MainActivity.this, aicare.net.cn.sdk.ailinksdkdemoandroid.WifiConfigActivity.class); | Intent intent1 = new Intent(MainActivity.this, aicare.net.cn.sdk.ailinksdkdemoandroid.WifiConfigActivity.class); | ||||
startActivity(intent1); | startActivity(intent1); | ||||
return; | return; | ||||
} | } | ||||
startActivity(type); | startActivity(type); | ||||
} | } |
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.List; | import java.util.List; | ||||
import java.util.UUID; | |||||
import aicare.net.cn.sdk.ailinksdkdemoandroid.config.BleDeviceConfig; | import aicare.net.cn.sdk.ailinksdkdemoandroid.config.BleDeviceConfig; | ||||
import aicare.net.cn.sdk.ailinksdkdemoandroid.dialog.LoadingIosDialogFragment; | import aicare.net.cn.sdk.ailinksdkdemoandroid.dialog.LoadingIosDialogFragment; | ||||
Button clear = findViewById(R.id.clear); | Button clear = findViewById(R.id.clear); | ||||
final Button filter = findViewById(R.id.filter); | final Button filter = findViewById(R.id.filter); | ||||
filter.setTag(true); | filter.setTag(true); | ||||
filter.setText(getString(R.string.filter)+"true"); | |||||
btn.setOnClickListener(new View.OnClickListener() { | btn.setOnClickListener(new View.OnClickListener() { | ||||
@Override | @Override | ||||
public void onClick(View v) { | public void onClick(View v) { | ||||
} else { | } else { | ||||
if (mFilter) | if (mFilter) | ||||
mBluetoothService.scanLeDevice(0, BleConfig.UUID_SERVER, UUID.fromString("0000FEE7-0000-1000-8000-00805F9B34FB")); | |||||
mBluetoothService.scanLeDevice(0, BleConfig.UUID_SERVER_AILINK); | |||||
else | else | ||||
mBluetoothService.scanLeDevice(0); | mBluetoothService.scanLeDevice(0); | ||||
} | } | ||||
} | } | ||||
}); | }); | ||||
findViewById(R.id.跳过).setOnClickListener(new View.OnClickListener() { | |||||
@Override | |||||
public void onClick(View v) { | |||||
Toast.makeText(mContext, "跳过", Toast.LENGTH_SHORT).show(); | |||||
} | |||||
}); | |||||
} | } | ||||
if (!mList.contains(mAddress + "=" + data.getName())) { | if (!mList.contains(mAddress + "=" + data.getName())) { | ||||
String data1 = BleStrUtils.byte2HexStr(data.getScanRecord()); | String data1 = BleStrUtils.byte2HexStr(data.getScanRecord()); | ||||
String data2 = BleStrUtils.byte2HexStr(data.getManufacturerData()); | String data2 = BleStrUtils.byte2HexStr(data.getManufacturerData()); | ||||
BleLog.i(TAG, "设备地址+广播数据:" + mAddress + "||" + data1 + "||" + data2); | |||||
BleLog.i(TAG, "MAC=" + mAddress + " ||" + data1 + "||" + data2); | |||||
mList.add(mAddress + "=" + data.getName()); | mList.add(mAddress + "=" + data.getName()); | ||||
listAdapter.notifyDataSetChanged(); | listAdapter.notifyDataSetChanged(); | ||||
} | } | ||||
@Override | @Override | ||||
public void onDisConnected(@NonNull String mac, int code) { | public void onDisConnected(@NonNull String mac, int code) { | ||||
dismissLoading(); | dismissLoading(); | ||||
Toast.makeText(mContext, "连接断开:" + code, Toast.LENGTH_SHORT).show(); | |||||
Toast.makeText(mContext, getString(R.string.disconnect) + code, Toast.LENGTH_SHORT).show(); | |||||
} | } | ||||
import android.view.View; | import android.view.View; | ||||
import android.widget.ArrayAdapter; | import android.widget.ArrayAdapter; | ||||
import android.widget.Button; | import android.widget.Button; | ||||
import android.widget.EditText; | |||||
import android.widget.ListView; | import android.widget.ListView; | ||||
import com.pingwang.bluetoothlib.BleBaseActivity; | import com.pingwang.bluetoothlib.BleBaseActivity; | ||||
import com.pingwang.bluetoothlib.device.BleDevice; | import com.pingwang.bluetoothlib.device.BleDevice; | ||||
import com.pingwang.bluetoothlib.device.BleSendCmdUtil; | import com.pingwang.bluetoothlib.device.BleSendCmdUtil; | ||||
import com.pingwang.bluetoothlib.device.SendBleBean; | import com.pingwang.bluetoothlib.device.SendBleBean; | ||||
import com.pingwang.bluetoothlib.device.SendMcuBean; | |||||
import com.pingwang.bluetoothlib.listener.CallbackDisIm; | import com.pingwang.bluetoothlib.listener.CallbackDisIm; | ||||
import com.pingwang.bluetoothlib.listener.OnBleCompanyListener; | import com.pingwang.bluetoothlib.listener.OnBleCompanyListener; | ||||
import com.pingwang.bluetoothlib.listener.OnBleVersionListener; | import com.pingwang.bluetoothlib.listener.OnBleVersionListener; | ||||
import com.pingwang.bluetoothlib.utils.BleDensityUtil; | import com.pingwang.bluetoothlib.utils.BleDensityUtil; | ||||
import com.pingwang.bluetoothlib.utils.BleLog; | import com.pingwang.bluetoothlib.utils.BleLog; | ||||
import com.pingwang.bluetoothlib.utils.BleStrUtils; | import com.pingwang.bluetoothlib.utils.BleStrUtils; | ||||
import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.TimeUtils; | |||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.List; | import java.util.List; | ||||
import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.TimeUtils; | |||||
import androidx.annotation.NonNull; | import androidx.annotation.NonNull; | ||||
import androidx.annotation.Nullable; | import androidx.annotation.Nullable; | ||||
import cn.net.aicare.modulelibrary.module.sphygmomanometer.SphyBleConfig; | import cn.net.aicare.modulelibrary.module.sphygmomanometer.SphyBleConfig; | ||||
/** | /** | ||||
* xing<br> | * xing<br> | ||||
* 2019/4/25<br> | * 2019/4/25<br> | ||||
* 显示数据 | |||||
* 血压计 | |||||
*/ | */ | ||||
public class SphyCmdActivity extends BleBaseActivity implements OnCallbackDis, OnBleVersionListener | public class SphyCmdActivity extends BleBaseActivity implements OnCallbackDis, OnBleVersionListener | ||||
, OnMcuParameterListener, OnBleCompanyListener, View.OnClickListener { | , OnMcuParameterListener, OnBleCompanyListener, View.OnClickListener { | ||||
private ArrayAdapter listAdapter; | private ArrayAdapter listAdapter; | ||||
private Context mContext; | private Context mContext; | ||||
private EditText et_type; | |||||
private SphyDeviceData mBleDevice; | private SphyDeviceData mBleDevice; | ||||
private String mAddress; | private String mAddress; | ||||
private BleSendCmdUtil mBleSendCmdUtil; | private BleSendCmdUtil mBleSendCmdUtil; | ||||
}); | }); | ||||
findViewById(R.id.btn1).setOnClickListener(this); | |||||
findViewById(R.id.btnVersion).setOnClickListener(this); | findViewById(R.id.btnVersion).setOnClickListener(this); | ||||
findViewById(R.id.btnBattery).setOnClickListener(this); | findViewById(R.id.btnBattery).setOnClickListener(this); | ||||
findViewById(R.id.btn_get_did).setOnClickListener(this); | findViewById(R.id.btn_get_did).setOnClickListener(this); | ||||
findViewById(R.id.clear).setOnClickListener(this); | findViewById(R.id.clear).setOnClickListener(this); | ||||
et_type = findViewById(R.id.et_type); | |||||
cmdBtn(); | cmdBtn(); | ||||
} | } | ||||
sendBleBean.setHex(mBleSendCmdUtil.getDid()); | sendBleBean.setHex(mBleSendCmdUtil.getDid()); | ||||
mBleDevice.sendData(sendBleBean); | mBleDevice.sendData(sendBleBean); | ||||
break; | break; | ||||
case R.id.btn1: | |||||
String cmd = et_type.getText().toString().trim(); | |||||
SendMcuBean sendDataBean = new SendMcuBean(); | |||||
sendDataBean.setHex(type,cmd.getBytes()); | |||||
mBleDevice.sendData(sendDataBean); | |||||
break; | |||||
case R.id.clear: | case R.id.clear: | ||||
if (mList != null) | if (mList != null) | ||||
mList.clear(); | mList.clear(); | ||||
@Override | @Override | ||||
public void getSphyCmd(byte cmd) { | public void getSphyCmd(byte cmd) { | ||||
mList.add(TimeUtils.getTime() + "指令:" + cmd); | |||||
mList.add(TimeUtils.getTime() + "cmd:" + cmd); | |||||
mHandler.sendEmptyMessage(REFRESH_DATA); | mHandler.sendEmptyMessage(REFRESH_DATA); | ||||
} | } | ||||
public void sphyDataNow(int dia, int sys, int decimal, int pul, int unit) { | public void sphyDataNow(int dia, int sys, int decimal, int pul, int unit) { | ||||
String diaStr = BleDensityUtil.getInstance().holdDecimals(dia, decimal); | String diaStr = BleDensityUtil.getInstance().holdDecimals(dia, decimal); | ||||
String sysStr = BleDensityUtil.getInstance().holdDecimals(sys, decimal); | String sysStr = BleDensityUtil.getInstance().holdDecimals(sys, decimal); | ||||
mList.add(TimeUtils.getTime() + "实时:dia=" + diaStr + "sys=" + sysStr + "pul=" + pul + "unit" + "=" + unit); | |||||
mList.add(TimeUtils.getTime() + "current:dia=" + diaStr + " sys=" + sysStr + " pul=" + pul + " unit=" + unit); | |||||
mHandler.sendEmptyMessage(REFRESH_DATA); | mHandler.sendEmptyMessage(REFRESH_DATA); | ||||
} | } | ||||
public void sphyData(int dia, int sys, int decimal, int pul, int unit) { | public void sphyData(int dia, int sys, int decimal, int pul, int unit) { | ||||
String diaStr = BleDensityUtil.getInstance().holdDecimals(dia, decimal); | String diaStr = BleDensityUtil.getInstance().holdDecimals(dia, decimal); | ||||
String sysStr = BleDensityUtil.getInstance().holdDecimals(sys, decimal); | String sysStr = BleDensityUtil.getInstance().holdDecimals(sys, decimal); | ||||
mList.add(TimeUtils.getTime() + "稳定:dia=" + diaStr + "sys=" + sysStr + "pul=" + pul + "unit" + "=" + unit); | |||||
mList.add(TimeUtils.getTime() + "result:dia=" + diaStr + " sys=" + sysStr + " pul=" + pul + " unit=" + unit); | |||||
mHandler.sendEmptyMessage(REFRESH_DATA); | mHandler.sendEmptyMessage(REFRESH_DATA); | ||||
} | } | ||||
String showData = ""; | String showData = ""; | ||||
switch (unit) { | switch (unit) { | ||||
case CmdConfig.SETTING_SUCCESS: | case CmdConfig.SETTING_SUCCESS: | ||||
showData = "设置单位成功"; | |||||
showData = getString(R.string.set_success); | |||||
break; | break; | ||||
case CmdConfig.SETTING_FAILURE: | case CmdConfig.SETTING_FAILURE: | ||||
showData = "设置单位失败"; | |||||
showData = getString(R.string.set_failure); | |||||
break; | break; | ||||
case CmdConfig.SETTING_ERR: | case CmdConfig.SETTING_ERR: | ||||
showData = "设置单位错误"; | |||||
showData = getString(R.string.set_err); | |||||
break; | break; | ||||
} | } | ||||
mList.add(TimeUtils.getTime() + showData); | |||||
mList.add(TimeUtils.getTime() + showData+" unit="+SphyCmdActivity.this.unit); | |||||
mHandler.sendEmptyMessage(REFRESH_DATA); | mHandler.sendEmptyMessage(REFRESH_DATA); | ||||
} | } | ||||
@Override | @Override | ||||
public void getErr(byte status) { | public void getErr(byte status) { | ||||
mList.add(TimeUtils.getTime() + "错误:" + status); | |||||
mList.add(TimeUtils.getTime() + "Err:" + status); | |||||
mHandler.sendEmptyMessage(REFRESH_DATA); | mHandler.sendEmptyMessage(REFRESH_DATA); | ||||
} | } | ||||
} | } | ||||
@Override | @Override | ||||
public void onBmVersion(String version) { | public void onBmVersion(String version) { | ||||
mList.add(TimeUtils.getTime() + "版本号:" + version); | |||||
mList.add(TimeUtils.getTime() + "Version:" + version); | |||||
mHandler.sendEmptyMessage(REFRESH_DATA); | mHandler.sendEmptyMessage(REFRESH_DATA); | ||||
} | } | ||||
@Override | @Override | ||||
public void onMcuBatteryStatus(int status, int battery) { | public void onMcuBatteryStatus(int status, int battery) { | ||||
mList.add(TimeUtils.getTime() + "电量:" + battery + "%"); | |||||
mList.add(TimeUtils.getTime() + getString(R.string.power) + battery + "%"); | |||||
mHandler.sendEmptyMessage(REFRESH_DATA); | mHandler.sendEmptyMessage(REFRESH_DATA); | ||||
} | } | ||||
String time = | String time = | ||||
times[0] + "-" + times[1] + "-" + times[2] + " " + times[3] + ":" + times[4] + | times[0] + "-" + times[1] + "-" + times[2] + " " + times[3] + ":" + times[4] + | ||||
":" + times[5]; | ":" + times[5]; | ||||
mList.add(TimeUtils.getTime() + "系统时间:" + time); | |||||
mList.add(TimeUtils.getTime() + "system Time:" + time); | |||||
mHandler.sendEmptyMessage(REFRESH_DATA); | mHandler.sendEmptyMessage(REFRESH_DATA); | ||||
} | } | ||||
* 服务Intent | * 服务Intent | ||||
*/ | */ | ||||
private Context mContext; | private Context mContext; | ||||
private EditText et_type; | |||||
private TempDeviceData mBleDevice; | private TempDeviceData mBleDevice; | ||||
private String mAddress; | private String mAddress; | ||||
private BleSendCmdUtil mBleSendCmdUtil; | private BleSendCmdUtil mBleSendCmdUtil; | ||||
findViewById(R.id.btnBattery).setOnClickListener(this); | findViewById(R.id.btnBattery).setOnClickListener(this); | ||||
findViewById(R.id.btn_get_did).setOnClickListener(this); | findViewById(R.id.btn_get_did).setOnClickListener(this); | ||||
findViewById(R.id.clear).setOnClickListener(this); | findViewById(R.id.clear).setOnClickListener(this); | ||||
et_type = findViewById(R.id.et_type); | |||||
cmdBtn(); | cmdBtn(); | ||||
} | } | ||||
sendBleBean.setHex(mBleSendCmdUtil.getDid()); | sendBleBean.setHex(mBleSendCmdUtil.getDid()); | ||||
mBleDevice.sendData(sendBleBean); | mBleDevice.sendData(sendBleBean); | ||||
break; | break; | ||||
case R.id.btn1: | |||||
String cmd = et_type.getText().toString().trim(); | |||||
SendMcuBean sendDataBean = new SendMcuBean(); | |||||
sendDataBean.setHex(type,cmd.getBytes()); | |||||
mBleDevice.sendData(sendDataBean); | |||||
break; | |||||
case R.id.clear: | case R.id.clear: | ||||
if (mList != null) | if (mList != null) | ||||
mList.clear(); | mList.clear(); |
* 服务Intent | * 服务Intent | ||||
*/ | */ | ||||
private Context mContext; | private Context mContext; | ||||
private EditText et_type; | |||||
private TempGunDeviceData mBleDevice; | private TempGunDeviceData mBleDevice; | ||||
private String mAddress; | private String mAddress; | ||||
private BleSendCmdUtil mBleSendCmdUtil; | private BleSendCmdUtil mBleSendCmdUtil; | ||||
findViewById(R.id.btnBattery).setOnClickListener(this); | findViewById(R.id.btnBattery).setOnClickListener(this); | ||||
findViewById(R.id.btn_get_did).setOnClickListener(this); | findViewById(R.id.btn_get_did).setOnClickListener(this); | ||||
findViewById(R.id.clear).setOnClickListener(this); | findViewById(R.id.clear).setOnClickListener(this); | ||||
et_type = findViewById(R.id.et_type); | |||||
cmdBtn(); | cmdBtn(); | ||||
} | } | ||||
sendBleBean.setHex(mBleSendCmdUtil.getDid()); | sendBleBean.setHex(mBleSendCmdUtil.getDid()); | ||||
mBleDevice.sendData(sendBleBean); | mBleDevice.sendData(sendBleBean); | ||||
break; | break; | ||||
case R.id.btn1: | |||||
String cmd = et_type.getText().toString().trim(); | |||||
SendMcuBean sendDataBean = new SendMcuBean(); | |||||
sendDataBean.setHex(type,cmd.getBytes()); | |||||
mBleDevice.sendData(sendDataBean); | |||||
break; | |||||
case R.id.clear: | case R.id.clear: | ||||
if (mList != null) | if (mList != null) | ||||
mList.clear(); | mList.clear(); |
import com.pingwang.bluetoothlib.BleBaseActivity; | import com.pingwang.bluetoothlib.BleBaseActivity; | ||||
import com.pingwang.bluetoothlib.device.BleDevice; | import com.pingwang.bluetoothlib.device.BleDevice; | ||||
import com.pingwang.bluetoothlib.listener.OnBleDeviceDataListener; | import com.pingwang.bluetoothlib.listener.OnBleDeviceDataListener; | ||||
import com.pingwang.bluetoothlib.listener.OnBleOTAListener; | |||||
import com.pingwang.bluetoothlib.listener.OnCallbackBle; | import com.pingwang.bluetoothlib.listener.OnCallbackBle; | ||||
import com.pingwang.bluetoothlib.listener.OnDialogOTAListener; | |||||
import com.pingwang.bluetoothlib.utils.BleLog; | import com.pingwang.bluetoothlib.utils.BleLog; | ||||
import java.util.ArrayList; | |||||
import java.util.List; | |||||
import aicare.net.cn.sdk.ailinksdkdemoandroid.dialog.DialogStringImageAdapter; | import aicare.net.cn.sdk.ailinksdkdemoandroid.dialog.DialogStringImageAdapter; | ||||
import aicare.net.cn.sdk.ailinksdkdemoandroid.dialog.ShowListDialogFragment; | import aicare.net.cn.sdk.ailinksdkdemoandroid.dialog.ShowListDialogFragment; | ||||
import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.FileUtils; | import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.FileUtils; | ||||
import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.SP; | import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.SP; | ||||
import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.TimeUtils; | import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.TimeUtils; | ||||
import java.util.ArrayList; | |||||
import java.util.List; | |||||
import androidx.annotation.NonNull; | import androidx.annotation.NonNull; | ||||
import androidx.annotation.Nullable; | import androidx.annotation.Nullable; | ||||
import androidx.core.app.ActivityCompat; | import androidx.core.app.ActivityCompat; | ||||
* 显示数据 | * 显示数据 | ||||
*/ | */ | ||||
public class TestOtaActivity extends BleBaseActivity implements OnCallbackBle, | public class TestOtaActivity extends BleBaseActivity implements OnCallbackBle, | ||||
OnBleDeviceDataListener, View.OnClickListener, OnDialogOTAListener, ShowListDialogFragment.onDialogListener { | |||||
OnBleDeviceDataListener, View.OnClickListener, OnBleOTAListener, ShowListDialogFragment.onDialogListener { | |||||
private static String TAG = TestOtaActivity.class.getName(); | private static String TAG = TestOtaActivity.class.getName(); | ||||
private final int REFRESH_DATA = 3; | private final int REFRESH_DATA = 3; |
mToothBrushWiFiBleUtilsData.queryBleStatus(); | mToothBrushWiFiBleUtilsData.queryBleStatus(); | ||||
break; | break; | ||||
case R.id.sn: | case R.id.sn: | ||||
mToothBrushWiFiBleUtilsData.getDevicedid(); | |||||
mToothBrushWiFiBleUtilsData.getDeviceId(); | |||||
break; | break; | ||||
case R.id.scan_wifi: | case R.id.scan_wifi: | ||||
mToothBrushWiFiBleUtilsData.scanWifi(); | mToothBrushWiFiBleUtilsData.scanWifi(); | ||||
if (data.equals("") || data.length() > 8) { | if (data.equals("") || data.length() > 8) { | ||||
dataPaw = data.trim(); | dataPaw = data.trim(); | ||||
mToothBrushWiFiBleUtilsData.setWifimac(wifimacMap.get(selectWifi)); | |||||
mToothBrushWiFiBleUtilsData.setWifiMac(wifimacMap.get(selectWifi)); | |||||
} else { | } else { | ||||
Toast.makeText(ToothBrushWifiBleActivity.this, "密码格式不对", Toast.LENGTH_SHORT).show(); | Toast.makeText(ToothBrushWifiBleActivity.this, "密码格式不对", Toast.LENGTH_SHORT).show(); | ||||
} | } | ||||
break; | break; | ||||
case R.id.default_time_mode: | case R.id.default_time_mode: | ||||
mToothBrushWiFiBleUtilsData.getdefaultGearAndDuration(); | |||||
mToothBrushWiFiBleUtilsData.getDefaultGearAndDuration(); | |||||
break; | break; | ||||
} | } | ||||
import com.pingwang.bluetoothlib.device.BleDevice; | import com.pingwang.bluetoothlib.device.BleDevice; | ||||
import com.pingwang.bluetoothlib.device.BleSendCmdUtil; | import com.pingwang.bluetoothlib.device.BleSendCmdUtil; | ||||
import com.pingwang.bluetoothlib.device.SendBleBean; | import com.pingwang.bluetoothlib.device.SendBleBean; | ||||
import com.pingwang.bluetoothlib.device.SendMcuBean; | |||||
import com.pingwang.bluetoothlib.listener.CallbackDisIm; | import com.pingwang.bluetoothlib.listener.CallbackDisIm; | ||||
import com.pingwang.bluetoothlib.listener.OnBleCompanyListener; | import com.pingwang.bluetoothlib.listener.OnBleCompanyListener; | ||||
import com.pingwang.bluetoothlib.listener.OnBleVersionListener; | import com.pingwang.bluetoothlib.listener.OnBleVersionListener; | ||||
import com.pingwang.bluetoothlib.listener.OnMcuParameterListener; | import com.pingwang.bluetoothlib.listener.OnMcuParameterListener; | ||||
import com.pingwang.bluetoothlib.utils.BleLog; | import com.pingwang.bluetoothlib.utils.BleLog; | ||||
import com.pingwang.bluetoothlib.utils.BleStrUtils; | import com.pingwang.bluetoothlib.utils.BleStrUtils; | ||||
import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.TimeUtils; | |||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.List; | import java.util.List; | ||||
import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.TimeUtils; | |||||
import androidx.annotation.NonNull; | import androidx.annotation.NonNull; | ||||
import androidx.annotation.Nullable; | import androidx.annotation.Nullable; | ||||
import cn.net.aicare.modulelibrary.module.tpms.TpmsDeviceData; | import cn.net.aicare.modulelibrary.module.tpms.TpmsDeviceData; | ||||
* 服务Intent | * 服务Intent | ||||
*/ | */ | ||||
private Context mContext; | private Context mContext; | ||||
private EditText et_type; | |||||
private TpmsDeviceData mBleDevice; | private TpmsDeviceData mBleDevice; | ||||
private String mAddress; | private String mAddress; | ||||
private BleSendCmdUtil mBleSendCmdUtil; | private BleSendCmdUtil mBleSendCmdUtil; | ||||
findViewById(R.id.btnVersion).setOnClickListener(this); | findViewById(R.id.btnVersion).setOnClickListener(this); | ||||
findViewById(R.id.btnBattery).setOnClickListener(this); | findViewById(R.id.btnBattery).setOnClickListener(this); | ||||
findViewById(R.id.btn_get_did).setOnClickListener(this); | findViewById(R.id.btn_get_did).setOnClickListener(this); | ||||
et_type = findViewById(R.id.et_type); | |||||
cmdBtn(); | cmdBtn(); | ||||
} | } | ||||
sendBleBean.setHex(mBleSendCmdUtil.getDid()); | sendBleBean.setHex(mBleSendCmdUtil.getDid()); | ||||
mBleDevice.sendData(sendBleBean); | mBleDevice.sendData(sendBleBean); | ||||
break; | break; | ||||
case R.id.btn1: | |||||
String cmd = et_type.getText().toString().trim(); | |||||
SendMcuBean sendDataBean = new SendMcuBean(); | |||||
sendDataBean.setHex(type,cmd.getBytes()); | |||||
mBleDevice.sendData(sendDataBean); | |||||
break; | |||||
case R.id.clear: | case R.id.clear: | ||||
if (mList != null) | if (mList != null) | ||||
mList.clear(); | mList.clear(); |
import android.widget.ListView; | import android.widget.ListView; | ||||
import android.widget.RadioButton; | import android.widget.RadioButton; | ||||
import androidx.annotation.Nullable; | |||||
import androidx.appcompat.app.AppCompatActivity; | |||||
import androidx.core.app.ActivityCompat; | |||||
import androidx.core.content.ContextCompat; | |||||
import org.json.JSONArray; | import org.json.JSONArray; | ||||
import org.json.JSONException; | import org.json.JSONException; | ||||
import org.json.JSONObject; | import org.json.JSONObject; | ||||
import java.net.URL; | import java.net.URL; | ||||
import java.text.SimpleDateFormat; | import java.text.SimpleDateFormat; | ||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.List; | import java.util.List; | ||||
import java.util.Locale; | import java.util.Locale; | ||||
import cn.net.aicare.modulelibrary.module.EightBodyfatscale.EightBodyfatUtil; | |||||
import androidx.annotation.Nullable; | |||||
import androidx.appcompat.app.AppCompatActivity; | |||||
import androidx.core.app.ActivityCompat; | |||||
import androidx.core.content.ContextCompat; | |||||
import cn.net.aicare.modulelibrary.module.wifi.WifiConfig; | import cn.net.aicare.modulelibrary.module.wifi.WifiConfig; | ||||
import cn.net.aicare.modulelibrary.module.wifi.WifiUtils; | import cn.net.aicare.modulelibrary.module.wifi.WifiUtils; | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:padding="10dp"> | android:padding="10dp"> | ||||
<EditText | |||||
android:id="@+id/et_type" | |||||
android:layout_width="200dp" | |||||
android:layout_height="wrap_content" | |||||
android:hint="透传数据" | |||||
android:text="4" | |||||
/> | |||||
<Button | |||||
android:id="@+id/btn1" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="发送" | |||||
/> | |||||
<Button | <Button | ||||
android:id="@+id/clear" | android:id="@+id/clear" |
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||||
<LinearLayout | |||||
xmlns:android="http://schemas.android.com/apk/res/android" | |||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | |||||
xmlns:app="http://schemas.android.com/apk/res-auto" | xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="match_parent" | android:layout_height="match_parent" | ||||
android:orientation="vertical" | |||||
> | |||||
android:orientation="vertical"> | |||||
<TextView | <TextView | ||||
android:id="@+id/tv_app_version" | android:id="@+id/tv_app_version" | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="@string/version" | |||||
android:padding="10dp" | android:padding="10dp" | ||||
/> | |||||
android:text="@string/version" /> | |||||
<LinearLayout | <LinearLayout | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:layout_margin="10dp" | android:layout_margin="10dp" | ||||
> | |||||
android:gravity="center_vertical"> | |||||
<Button | <Button | ||||
android:id="@+id/btn_sphy" | android:id="@+id/btn_sphy" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="血压计" | |||||
/> | |||||
android:text="@string/sphygmometer" | |||||
android:textSize="12dp" /> | |||||
<Button | <Button | ||||
android:id="@+id/btn_tempgun" | android:id="@+id/btn_tempgun" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="额温枪" | |||||
/> | |||||
android:text="@string/forehead_gun" | |||||
android:textSize="12dp" /> | |||||
<Button | <Button | ||||
android:id="@+id/btn_temp" | android:id="@+id/btn_temp" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="体温计" | |||||
/> | |||||
android:text="@string/thermometer" | |||||
android:textSize="12dp" /> | |||||
<Button | |||||
android:id="@+id/btn_baby" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="婴儿秤" | |||||
/> | |||||
</LinearLayout> | </LinearLayout> | ||||
<LinearLayout | <LinearLayout | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:layout_margin="10dp" | android:layout_margin="10dp" | ||||
> | |||||
android:gravity="center_vertical"> | |||||
<Button | <Button | ||||
android:id="@+id/btn_height" | android:id="@+id/btn_height" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="身高仪" | |||||
/> | |||||
android:text="@string/height_meter" | |||||
android:textSize="12dp" /> | |||||
<Button | <Button | ||||
android:id="@+id/btn_ad_weight" | |||||
android:id="@+id/btn_smart_mask" | |||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="艾迪体脂秤" | |||||
/> | |||||
android:text="@string/smart_mask" | |||||
android:textSize="12dp" /> | |||||
<Button | <Button | ||||
android:id="@+id/btn_smart_mask" | |||||
android:id="@+id/btn_baby" | |||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="口罩" | |||||
/> | |||||
android:text="@string/baby_scale" | |||||
android:textSize="12dp" /> | |||||
</LinearLayout> | </LinearLayout> | ||||
<LinearLayout | <LinearLayout | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="wrap_content" | |||||
android:layout_margin="10dp" | android:layout_margin="10dp" | ||||
android:layout_height="wrap_content"> | |||||
android:gravity="center_vertical"> | |||||
<Button | <Button | ||||
android:id="@+id/btn_baby_body_fat" | android:id="@+id/btn_baby_body_fat" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="婴儿体脂两用秤" | |||||
/> | |||||
android:text="@string/baby_body_fat_scale" | |||||
android:textSize="12dp" /> | |||||
<Button | <Button | ||||
android:id="@+id/btn_broadcast_scale" | android:id="@+id/btn_broadcast_scale" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="广播秤" | |||||
/> | |||||
android:text="@string/broadcast_scale" | |||||
android:textSize="12dp" /> | |||||
<Button | <Button | ||||
android:id="@+id/btn_broadcast_blood_oxygen" | android:id="@+id/btn_broadcast_blood_oxygen" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="血氧仪" | |||||
/> | |||||
android:text="@string/oximeter" | |||||
android:textSize="12dp" /> | |||||
</LinearLayout> | </LinearLayout> | ||||
<LinearLayout | <LinearLayout | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="wrap_content" | |||||
android:layout_margin="10dp" | android:layout_margin="10dp" | ||||
android:layout_height="wrap_content"> | |||||
android:gravity="center_vertical"> | |||||
<Button | <Button | ||||
android:id="@+id/btn_wifi_ble_weight" | android:id="@+id/btn_wifi_ble_weight" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="WiFi+Ble体脂秤" | |||||
/> | |||||
android:text="@string/wifi_ble_weight_scale" | |||||
android:textSize="12dp" /> | |||||
<Button | <Button | ||||
android:id="@+id/btn_ble_weight" | android:id="@+id/btn_ble_weight" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="Ble体脂秤" | |||||
/> | |||||
android:text="@string/ble_body_fat_scale" | |||||
android:textSize="12dp" /> | |||||
<Button | <Button | ||||
android:id="@+id/btn_wifi_ble_tooth" | android:id="@+id/btn_wifi_ble_tooth" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="牙刷(wifi+ble)" | |||||
/> | |||||
android:text="@string/wifi_ble_toothbrush" | |||||
android:textSize="12dp" /> | |||||
</LinearLayout> | </LinearLayout> | ||||
<LinearLayout | <LinearLayout | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:layout_margin="10dp" | android:layout_margin="10dp" | ||||
> | |||||
android:gravity="center_vertical"> | |||||
<Button | <Button | ||||
android:id="@+id/btn_ble" | android:id="@+id/btn_ble" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="Ble通用设置" | |||||
/> | |||||
<Button | |||||
android:id="@+id/btn_ble_test" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="BleTest" | |||||
/> | |||||
<Button | |||||
android:id="@+id/btnConnectTest" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="BleConnectTest" | |||||
android:text="@string/general_settings" | |||||
android:textSize="12dp" /> | |||||
/> | |||||
</LinearLayout> | </LinearLayout> | ||||
<LinearLayout | <LinearLayout | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:layout_margin="10dp"> | |||||
android:layout_margin="10dp" | |||||
android:gravity="center_vertical"> | |||||
<Button | <Button | ||||
android:id="@+id/wifi_config" | android:id="@+id/wifi_config" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="WIFI设备(配置wifi)" | |||||
/> | |||||
android:text="@string/device_wifi_config" | |||||
android:textSize="12dp" /> | |||||
<Button | <Button | ||||
android:id="@+id/eight_scale" | android:id="@+id/eight_scale" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="八极秤" | |||||
/> | |||||
android:text="@string/eight_scale" | |||||
android:textSize="12dp" /> | |||||
<Button | <Button | ||||
android:id="@+id/glucometer" | android:id="@+id/glucometer" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="血糖仪" | |||||
/> | |||||
android:text="@string/blood_glucose_meter" | |||||
android:textSize="12dp" /> | |||||
</LinearLayout> | </LinearLayout> | ||||
<LinearLayout | <LinearLayout | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:layout_margin="10dp" | android:layout_margin="10dp" | ||||
> | |||||
android:gravity="center_vertical"> | |||||
<Button | <Button | ||||
android:id="@+id/btn_ota" | android:id="@+id/btn_ota" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="OTA通用" | |||||
/> | |||||
android:text="@string/ota_general" | |||||
android:textSize="12dp" /> | |||||
<Button | |||||
android:id="@+id/btn_wristband" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="手环" | |||||
/> | |||||
<Button | <Button | ||||
android:id="@+id/btn_transmission" | android:id="@+id/btn_transmission" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="透传" | |||||
/> | |||||
android:text="@string/penetrate" | |||||
android:textSize="12dp" /> | |||||
</LinearLayout> | </LinearLayout> |
android:id="@+id/btn" | android:id="@+id/btn" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="搜索" | |||||
android:text="@string/search" | |||||
/> | /> | ||||
<Button | <Button | ||||
android:id="@+id/btn1" | android:id="@+id/btn1" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="停止" | |||||
android:text="@string/stop" | |||||
/> | /> | ||||
<Button | <Button | ||||
android:id="@+id/clear" | android:id="@+id/clear" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="清空" | |||||
android:text="@string/clear" | |||||
/> | /> | ||||
android:id="@+id/filter" | android:id="@+id/filter" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="过滤:true" | |||||
android:text="@string/filter" | |||||
/> | /> | ||||
<Button | |||||
android:id="@+id/跳过" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="跳过" | |||||
/> | |||||
</LinearLayout> | </LinearLayout> | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:padding="10dp"> | android:padding="10dp"> | ||||
<EditText | |||||
android:id="@+id/et_type" | |||||
android:layout_width="200dp" | |||||
android:layout_height="wrap_content" | |||||
android:hint="透传数据" | |||||
android:text="4" | |||||
/> | |||||
<Button | |||||
android:id="@+id/btn1" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="发送" | |||||
/> | |||||
<Button | <Button | ||||
android:id="@+id/clear" | android:id="@+id/clear" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:text="清空" | |||||
android:text="@string/clear" | |||||
/> | /> | ||||
</LinearLayout> | </LinearLayout> | ||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:padding="10dp"> | android:padding="10dp"> | ||||
<EditText | |||||
android:id="@+id/et_type" | |||||
android:layout_width="200dp" | |||||
android:layout_height="wrap_content" | |||||
android:hint="透传数据" | |||||
android:text="4" | |||||
/> | |||||
<Button | |||||
android:id="@+id/btn1" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="发送" | |||||
/> | |||||
<Button | <Button | ||||
android:id="@+id/clear" | android:id="@+id/clear" |
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:padding="10dp"> | android:padding="10dp"> | ||||
<EditText | |||||
android:id="@+id/et_type" | |||||
android:layout_width="200dp" | |||||
android:layout_height="wrap_content" | |||||
android:hint="透传数据" | |||||
android:text="4" | |||||
/> | |||||
<Button | |||||
android:id="@+id/btn1" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="发送" | |||||
/> | |||||
<Button | <Button | ||||
android:id="@+id/clear" | android:id="@+id/clear" | ||||
android:layout_width="wrap_content" | android:layout_width="wrap_content" |
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:padding="10dp"> | android:padding="10dp"> | ||||
<EditText | |||||
android:id="@+id/et_type" | |||||
android:layout_width="200dp" | |||||
android:layout_height="wrap_content" | |||||
android:hint="透传数据" | |||||
android:text="4" | |||||
/> | |||||
<Button | |||||
android:id="@+id/btn1" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="发送" | |||||
/> | |||||
<Button | <Button | ||||
android:id="@+id/clear" | android:id="@+id/clear" |
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
android:padding="10dp"> | android:padding="10dp"> | ||||
<EditText | |||||
android:id="@+id/et_type" | |||||
android:layout_width="200dp" | |||||
android:layout_height="wrap_content" | |||||
android:hint="透传数据" | |||||
/> | |||||
<Button | |||||
android:id="@+id/btn1" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="发送" | |||||
/> | |||||
<Button | <Button | ||||
android:id="@+id/clear" | android:id="@+id/clear" |
<resources> | |||||
<string name="app_name">AILinkSDKDemo</string> | |||||
<string name="clear">清空</string> | |||||
<string name="handshake">握手</string> | |||||
<string name="version">版本</string> | |||||
<string name="time">时间</string> | |||||
<string name="baby_hold">锁定</string> | |||||
<string name="search">搜索</string> | |||||
<string name="stop">停止</string> | |||||
<string name="open_light">开灯</string> | |||||
<string name="close_light">关灯</string> | |||||
<string name="upgrade">升级</string> | |||||
<string name="schedule_ui">UI进度</string> | |||||
<string name="schedule_ble">BLE进度</string> | |||||
<string name="connection_succeeded">连接成功:</string> | |||||
<string name="data_written">写入的数据:</string> | |||||
<string name="data_received">接收到的数据:</string> | |||||
<string name="success">成功</string> | |||||
<string name="failure">失败</string> | |||||
<string name="rtk_dfu_progress_state_origin">准备升级</string> | |||||
<string name="rtk_dfu_state_abort_processing">等待取消…</string> | |||||
<string name="rtk_dfu_state_aborted">已取消</string> | |||||
<string name="rtk_dfu_state_connect_ota_remote">连接设备…</string> | |||||
<string name="rtk_dfu_state_error_processing">处理错误…</string> | |||||
<string name="rtk_dfu_state_find_ota_remote">搜索设备…</string> | |||||
<string name="rtk_dfu_state_hand_over_processing">正在HandOver…</string> | |||||
<string name="rtk_dfu_state_image_active_success">固件激活成功</string> | |||||
<string name="rtk_dfu_state_initialize">初始化 …</string> | |||||
<string name="rtk_dfu_state_known">未知</string> | |||||
<string name="rtk_dfu_state_origin">初始化</string> | |||||
<string name="rtk_dfu_state_ota_send_file">正在发送文件 %1$d/%2$d …</string> | |||||
<string name="rtk_dfu_state_pending_active_image">等待激活固件 …</string> | |||||
<string name="rtk_dfu_state_prepare_dfu_processing">准备升级环境 …</string> | |||||
<string name="rtk_dfu_state_remote_enter_ota">进入升级模式…</string> | |||||
<string name="rtk_dfu_state_scan_secondary_bud">正在搜索副耳设备 …</string> | |||||
<string name="rtk_dfu_state_start">启动中 …</string> | |||||
<string name="rtk_dfu_state_start_active_image">固件激活中 …</string> | |||||
<string name="rtk_dfu_state_start_ota_processing">正在升级…</string> | |||||
<string name="rtk_dfu_state_upgrade_success">升级成功</string> | |||||
<string name="check_version">校验版本:</string> | |||||
<string name="sphygmometer">血压计</string> | |||||
<string name="forehead_gun">额温枪</string> | |||||
<string name="thermometer">体温计</string> | |||||
<string name="baby_scale">婴儿秤</string> | |||||
<string name="height_meter">身高仪</string> | |||||
<string name="smart_mask">智能口罩</string> | |||||
<string name="baby_body_fat_scale">婴儿体脂两用秤</string> | |||||
<string name="broadcast_scale">广播秤</string> | |||||
<string name="oximeter">血氧仪</string> | |||||
<string name="wifi_ble_weight_scale">WiFi+Ble体脂秤</string> | |||||
<string name="ble_body_fat_scale">Ble体脂秤</string> | |||||
<string name="wifi_ble_toothbrush">牙刷(wifi+ble)</string> | |||||
<string name="general_settings">Ble通用设置</string> | |||||
<string name="device_wifi_config">WIFI设备(配置wifi)</string> | |||||
<string name="eight_scale">八极秤</string> | |||||
<string name="blood_glucose_meter">血糖仪</string> | |||||
<string name="ota_general">OTA通用</string> | |||||
<string name="penetrate">透传</string> | |||||
<string name="disconnect">连接断开</string> | |||||
<string name="filter">过滤:</string> | |||||
<string name="power">电量:</string> | |||||
<string name="set_success">设置成功</string> | |||||
<string name="set_failure">设置失败</string> | |||||
<string name="set_err">设置错误</string> | |||||
</resources> |
<resources> | <resources> | ||||
<string name="app_name">AILinkSdkDemoAndroid</string> | |||||
<string name="clear">清空</string> | |||||
<string name="app_name" translatable="false">AILinkSDKDemo</string> | |||||
<string name="handshake">握手</string> | <string name="handshake">握手</string> | ||||
<string name="version">版本</string> | <string name="version">版本</string> | ||||
<string name="time">时间</string> | <string name="time">时间</string> | ||||
<string name="baby_hold">锁定</string> | |||||
<string name="rtk_dfu_progress_state_origin"> ready to upgrade </string> | |||||
<string name="rtk_dfu_state_abort_processing">waiting for cancellation...</string> | |||||
<string name="rtk_dfu_state_aborted"> has been cancelled</string> | |||||
<string name="rtk_dfu_state_connect_ota_remote"> connect equipment...</string> | |||||
<string name="rtk_dfu_state_error_processing"> handling errors...</string> | |||||
<string name="rtk_dfu_state_find_ota_remote"> search equipment...</string> | |||||
<string name="rtk_dfu_state_hand_over_processing"> is HandOver...</string> | |||||
<string name="rtk_dfu_state_image_active_success"> The firmware is activated successfully</string> | |||||
<string name="rtk_dfu_state_initialize"> initialization...</string> | |||||
<string name="rtk_dfu_state_known"> unknown</string> | |||||
<string name="rtk_dfu_state_origin"> initialization </string> | |||||
<string name="rtk_dfu_state_ota_send_file"> is sending file %1$d/%2$d …</string> | |||||
<string name="rtk_dfu_state_pending_active_image">Waiting to activate the firmware...</string> | |||||
<string name="rtk_dfu_state_prepare_dfu_processing"> ready to upgrade the environment...</string> | |||||
<string name="rtk_dfu_state_remote_enter_ota"> enter the upgrade mode...</string> | |||||
<string name="rtk_dfu_state_scan_secondary_bud"> is searching for accessory ear equipment...</string> | |||||
<string name="rtk_dfu_state_start"> starting...</string> | |||||
<string name="rtk_dfu_state_start_active_image"> the firmware is activated...</string> | |||||
<string name="rtk_dfu_state_start_ota_processing"> is being upgraded...</string> | |||||
<string name="rtk_dfu_state_upgrade_success"> successful upgrade </string> | |||||
<string name="search">search</string> | |||||
<string name="stop">stop</string> | |||||
<string name="clear">clear</string> | |||||
<string name="open_light">on light</string> | |||||
<string name="close_light">off light</string> | |||||
<string name="upgrade">upgrade</string> | |||||
<string name="schedule_ui">UI schedule</string> | |||||
<string name="schedule_ble">BLE schedule</string> | |||||
<string name="connection_succeeded">connection succeeded:</string> | |||||
<string name="data_written">Data written:</string> | |||||
<string name="data_received">Data received:</string> | |||||
<string name="success">success</string> | |||||
<string name="failure">failure</string> | |||||
<string name="check_version">version:</string> | |||||
<string name="sphygmometer">sphygmometer</string> | |||||
<string name="forehead_gun">Forehead gun</string> | |||||
<string name="thermometer">thermometer</string> | |||||
<string name="baby_scale">Baby scale</string> | |||||
<string name="height_meter">Height meter</string> | |||||
<string name="smart_mask">Smart mask</string> | |||||
<string name="baby_body_fat_scale">Baby Body Fat \n Scale</string> | |||||
<string name="broadcast_scale">Broadcast \n scale</string> | |||||
<string name="oximeter">Oximeter</string> | |||||
<string name="wifi_ble_weight_scale">WiFi+Ble \n Body fat scale</string> | |||||
<string name="ble_body_fat_scale">Ble \n Body fat scale</string> | |||||
<string name="wifi_ble_toothbrush">toothbrush \n (wifi+ble)</string> | |||||
<string name="general_settings">Ble \n General settings</string> | |||||
<string name="device_wifi_config">WIFI Device \n (configure wifi)</string> | |||||
<string name="eight_scale">Eight electrode \n scale</string> | |||||
<string name="blood_glucose_meter">Glucometer</string> | |||||
<string name="ota_general">OTA Universal</string> | |||||
<string name="penetrate">Penetrate</string> | |||||
<string name="disconnect">Disconnect</string> | |||||
<string name="filter">filter:</string> | |||||
<string name="power">Power:</string> | |||||
<string name="set_success">Set success</string> | |||||
<string name="set_failure">Set failure</string> | |||||
<string name="set_err">Set error</string> | |||||
</resources> | </resources> |