KN926
WorkFlow
Scan and connect KD926 scale.
KD926 only support offline measurement.
Connection to device
1.Listen to device notify
private iHealthDevicesCallback miHealthDevicesCallback = new iHealthDevicesCallback() {
@Override
public void onScanDevice(String mac, String deviceType, int rssi, Map manufactorData) { }
@Override
public void onDeviceConnectionStateChange(String mac, String deviceType, int status, int errorID, Map manufactorData){ }
@Override
public void onScanError(String reason, long latency) { }
@Override
public void onScanFinish() { }
@Override
public void onDeviceNotify(String mac, String deviceType,
String action, String message) { }
}
int callbackId = iHealthDevicesManager.getInstance().registerClientCallback(miHealthDevicesCallback);
iHealthDevicesManager.getInstance().addCallbackFilterForDeviceType(callbackId, iHealthDevicesManager.TYPE_KD926);
iHealthDevicesManager.getInstance().addCallbackFilterForAddress(callbackId, String... macs)
2.Scan for KD926 devices
iHealthDevicesManager.getInstance().startDiscovery(DiscoveryTypeEnum.KD926);
3.Connect to KD926 devices
iHealthDevicesManager.getInstance().connectDevice("", mac, iHealthDevicesManager.TYPE_KD926)
Bp926Control control = iHealthDevicesManager.getInstance().getBp926Control(mDeviceMac);
API reference
Get the device battery
Bp926Control control = iHealthDevicesManager.getInstance().getBp926Control(mDeviceMac);
control.getBattery();
// Return value
private iHealthDevicesCallback miHealthDevicesCallback = new iHealthDevicesCallback() {
@Override
public void onDeviceNotify(String mac, String deviceType, String action, String message) {
if (BpProfile.ACTION_BATTERY_CBP.equals(action)) {
try {
JSONObject obj = new JSONObject(message);
int battery = obj.getInt(BpProfile.BATTERY_CBP);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}
Set local time to KD926
Bp926Control control = iHealthDevicesManager.getInstance().getBp926Control(mDeviceMac);
control.setTime();
// Return value
private iHealthDevicesCallback miHealthDevicesCallback = new iHealthDevicesCallback() {
@Override
public void onDeviceNotify(String mac, String deviceType, String action, String message) {
if (BpProfile.ACTION_SET_TIME_CBP.equals(action)) {
}
}
}
Get the feature of Continua KD926
Bp926Control control = iHealthDevicesManager.getInstance().getBp926Control(mDeviceMac);
control.getFeature();
// Return value
private iHealthDevicesCallback miHealthDevicesCallback = new iHealthDevicesCallback() {
@Override
public void onDeviceNotify(String mac, String deviceType, String action, String message) {
if (BpProfile.ACTION_FEATURE_CBP.equals(action)) {
try {
JSONObject obj = new JSONObject(message);
int bodyMovement = obj.getInt(BpProfile.FEATURE_BODY_MOVEMENT_CBP);
int fitDetection = obj.getInt(BpProfile.FEATURE_FIT_DETECTION_CBP);
int irregularPulse = obj.getInt(BpProfile.FEATURE_IRREGULAR_PULSE_DETECTION_CBP);
int pulseRate = obj.getInt(BpProfile.FEATURE_PULSE_RATE_RANGE_DETECTION_CBP);
int measurementPosition = obj.getInt(BpProfile.FEATURE_MEASUREMENT_POSITION_DETECTION_CBP);
int multipleBond = obj.getInt(BpProfile.FEATURE_MULTIPLE_BOND_CBP);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}
Set Current user
Bp926Control control = iHealthDevicesManager.getInstance().getBp926Control(mDeviceMac);
control.commandSetUser(int UserID);
// Return value
private iHealthDevicesCallback miHealthDevicesCallback = new iHealthDevicesCallback() {
@Override
public void onDeviceNotify(String mac, String deviceType, String action, String message) {
if (BpProfile.ACTION_CONFORM_CHOOSE_USER_CBP.equals(action)) {
try {
JSONObject obj = new JSONObject(message);
int currentUserId = obj.getInt(BpProfile.CHOOSE_USER_CBP);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}
Get history data
Bp926Control control = iHealthDevicesManager.getInstance().getBp926Control(mDeviceMac);
control.getData();
// Return value
private iHealthDevicesCallback miHealthDevicesCallback = new iHealthDevicesCallback() {
@Override
public void onDeviceNotify(String mac, String deviceType, String action, String message) {
if (BpProfile.ACTION_HISTORY_DATA_CBP.equals(action)) {
try {
JSONObject obj = new JSONObject(message);
int measureFlag = obj.getInt(BpProfile.CBPINFO_UNIT);
int timestampFlag = obj.getInt(BpProfile.CBPINFO_TIMESTAMP_FLAG);
int pulseRateFlag = obj.getInt(BpProfile.CBPINFO_PULSE_RATE_FLAG);
int userIDFlag = obj.getInt(BpProfile.CBPINFO_USER_ID_FLAG);
int measureStatusFlag = obj.getInt(BpProfile.CBPINFO_MEASURE_STATUS_FLAG);
int hsdFlag = obj.getInt(BpProfile.CBPINFO_HSD_FLAG);
int sys = obj.getInt(BpProfile.CBPINFO_SYS);
int dia = obj.getInt(BpProfile.CBPINFO_DIA);
int map = obj.getInt(BpProfile.CBPINFO_MAP);
int measureTime = obj.getInt(BpProfile.CBPINFO_TIMESTAMP);
int pulseRate = obj.getInt(BpProfile.CBPINFO_PULSE_RATE);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}
Disconnect KD926 device
Bp926Control control = iHealthDevicesManager.getInstance().getBp926Control(mDeviceMac);
control.disconnect();
// Return value
private iHealthDevicesCallback miHealthDevicesCallback = new iHealthDevicesCallback() {
@Override
public void onDeviceConnectionStateChange(String mac, String deviceType, int status, int errorID, Map manufactorData) {
if (iHealthDevicesManager.DEVICE_STATE_DISCONNECTED == status) {
Log.i("The device is disconnected");
}
}
}