Parcourir la source

Update demo

master
陈福行 il y a 4 ans
Parent
révision
840903369a

+ 5
- 4
app/build.gradle Voir le fichier

@@ -7,8 +7,8 @@ android {
applicationId "aicare.net.cn.sdk.ailinksdkdemoandroid"
minSdkVersion 19
targetSdkVersion 29
versionCode 3
versionName "1.5.2"
versionCode 4
versionName "1.5.4"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
@@ -31,8 +31,9 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
implementation 'com.github.elinkthings:AILinkSDKRepositoryAndroid:1.6.9'
implementation 'com.github.elinkthings:AILinkSDKParsingLibraryAndroid:1.5.3'
implementation 'com.github.elinkthings:AILinkSDKRepositoryAndroid:1.7.4'
implementation 'com.github.elinkthings:AILinkSDKOtaLibraryAndroid:1.0.0'
implementation 'com.github.elinkthings:AILinkSDKParsingLibraryAndroid:1.5.4'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'com.jakewharton:butterknife:10.2.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.0'

+ 2
- 2
app/src/main/AndroidManifest.xml Voir le fichier

@@ -52,8 +52,8 @@
<activity android:name=".ConnectBleTestActivity" />
<activity android:name=".ADWeightScaleCmdActivity" />
<activity android:name=".ADWeightScaleUserActivity" />
<activity android:name=".WeightScaleWifiBle" />
<activity android:name=".WeightScaleBle"/>
<activity android:name=".WeightScaleWifiBleActivity" />
<activity android:name=".WeightScaleBleActivity"/>
<activity android:name=".WifiConfigActivity"/>
<activity android:name=".EightBodyfatActivity"/>
<activity android:name=".TestOtaActivity"/>

+ 30
- 23
app/src/main/java/aicare/net/cn/sdk/ailinksdkdemoandroid/BroadcastScaleActivity.java Voir le fichier

@@ -27,7 +27,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.TimeUtils;
import androidx.annotation.Nullable;
import cn.net.aicare.modulelibrary.module.BroadcastScale.BroadcastScaleBleConfig;
import cn.net.aicare.modulelibrary.module.BroadcastScale.BroadcastScaleDeviceData;
@@ -239,17 +238,17 @@ public class BroadcastScaleActivity extends BleBaseActivity implements OnCallbac

//-----------------通知-------------------

private String mOldData="";
@Override
public void onData(byte[] hex, int type) {
public void onData(byte[] dataOriginal,byte[] hex, int type) {
String data = "";
if (hex != null)
data = BleStrUtils.byte2HexStr(hex);
if (type == 100) {
mList.add(TimeUtils.getTime() + "send->" + data);
} else {
mList.add(TimeUtils.getTime() + "notify->" + data);
if (mOldData.equals(data)){
return;
}
mOldData=data;
mList.add(TimeUtils.getTime() + "数据ID" + type+" ,||解密数据:"+data+" ,||原始数据:"+ BleStrUtils.byte2HexStr(dataOriginal));
mHandler.sendEmptyMessage(REFRESH_DATA);
}

@@ -290,8 +289,6 @@ public class BroadcastScaleActivity extends BleBaseActivity implements OnCallbac
break;
}
String statusStr = "状态=";


switch (status) {

case BroadcastScaleBleConfig.GET_WEIGHT_TESTING:
@@ -301,7 +298,7 @@ public class BroadcastScaleActivity extends BleBaseActivity implements OnCallbac
statusStr += "测阻抗中";
break;
case BroadcastScaleBleConfig.GET_IMPEDANCE_SUCCESS:
statusStr += "测阻抗成功";
statusStr+= "测阻抗成功";
break;
case BroadcastScaleBleConfig.GET_IMPEDANCE_FAIL:
statusStr += "测阻抗失败";
@@ -309,11 +306,12 @@ public class BroadcastScaleActivity extends BleBaseActivity implements OnCallbac
case BroadcastScaleBleConfig.GET_TEST_FINISH:
statusStr += "测量完成";
break;
default:
statusStr+=Integer.toHexString(status);
break;

}


String weightStr = BleDensityUtil.getInstance().holdDecimals(weight, 1);
String weightStr = BleDensityUtil.getInstance().holdDecimals(weight, weightDecimal);
if (weightNegative == 1) {
weightStr = "-" + weightStr;
}
@@ -325,21 +323,28 @@ public class BroadcastScaleActivity extends BleBaseActivity implements OnCallbac
showData += "\n实时体重=" + weightStr + ";小数位=" + weightDecimal + ";单位=" + weightUnit + ";" + weightUnitStr;
}
showData += "\n阻抗=" + adc;
if (tempNegative == 1) {
showData += "\n温度=" + (-temp / 10F) + tempUnitStr;
if (temp == 65535) {
//不支持温度
showData += "\n温度=暂不支持";
} else {
showData += "\n温度=" + (temp / 10F) + tempUnitStr;
if (tempNegative == 1) {
showData += "\n温度=" + (-temp / 10F) + tempUnitStr;
} else {
showData += "\n温度=" + (temp / 10F) + tempUnitStr;
}
if (mTemp != temp) {
mTemp = temp;
tv_broadcast_temp.setText((mTemp / 10F) + tempUnitStr);
}
}

showData += "\n算法ID=" + algorithmId;

if (mWeightUnit != weightUnit) {
mWeightUnit = weightUnit;
showWeightUnit(mWeightUnit);
}
if (mTemp != temp) {
mTemp = temp;
tv_broadcast_temp.setText((mTemp / 10F) + tempUnitStr);
}


mList.add(showData);
mHandler.sendEmptyMessage(REFRESH_DATA);
@@ -348,8 +353,9 @@ public class BroadcastScaleActivity extends BleBaseActivity implements OnCallbac
@Override
public void OnDID(int cid, int vid, int pid) {
String didStr = "cid:" + cid + "||vid:" + vid + "||pid:" + pid;
mList.add(TimeUtils.getTime() + "ID:" + didStr);
mHandler.sendEmptyMessage(REFRESH_DATA);
// if (tv_broadcast_did!=null){
// tv_broadcast_did.setText(didStr);
// }
}


@@ -367,11 +373,12 @@ public class BroadcastScaleActivity extends BleBaseActivity implements OnCallbac

@Override
public void onScanRecord(BleValueBean bleValueBean) {
if (TextUtils.isEmpty(mAddress)&&bleValueBean.isBroadcastModule()) {
if (TextUtils.isEmpty(mAddress) && bleValueBean.isBroadcastModule()) {
mAddress = bleValueBean.getMac();
if (tv_broadcast_mac != null) {
tv_broadcast_mac.setText(mAddress);
}

}
//地址相同,并且是广播秤
if (mAddress.equalsIgnoreCase(bleValueBean.getMac()) && bleValueBean.isBroadcastModule()) {

+ 2
- 2
app/src/main/java/aicare/net/cn/sdk/ailinksdkdemoandroid/ShowBleActivity.java Voir le fichier

@@ -292,13 +292,13 @@ public class ShowBleActivity extends AppCompatActivity implements OnCallbackBle,
intent.setClass(ShowBleActivity.this, aicare.net.cn.sdk.ailinksdkdemoandroid.HeightCmdActivity.class);
break;
case BleDeviceConfig.WEIGHT_BODY_FAT_SCALE:
intent.setClass(ShowBleActivity.this, aicare.net.cn.sdk.ailinksdkdemoandroid.WeightScaleBle.class);
intent.setClass(ShowBleActivity.this, WeightScaleBleActivity.class);
break;
case BleDeviceConfig.WEIGHT_BODY_FAT_SCALE_AD:
intent.setClass(ShowBleActivity.this, aicare.net.cn.sdk.ailinksdkdemoandroid.ADWeightScaleCmdActivity.class);
break;
case BleDeviceConfig.WEIGHT_BODY_FAT_SCALE_WIFI_BLE:
intent.setClass(ShowBleActivity.this, aicare.net.cn.sdk.ailinksdkdemoandroid.WeightScaleWifiBle.class);
intent.setClass(ShowBleActivity.this, WeightScaleWifiBleActivity.class);
break;
case BleDeviceConfig.TOOTHBRUSH_WIFI_BLE:
intent.setClass(ShowBleActivity.this, aicare.net.cn.sdk.ailinksdkdemoandroid.ToothBrushWifiBleActivity.class);

+ 2
- 2
app/src/main/java/aicare/net/cn/sdk/ailinksdkdemoandroid/TestCmdActivity.java Voir le fichier

@@ -20,13 +20,13 @@ import com.pingwang.bluetoothlib.listener.OnBleDeviceDataListener;
import com.pingwang.bluetoothlib.listener.OnCallbackDis;
import com.pingwang.bluetoothlib.utils.BleLog;
import com.pingwang.bluetoothlib.utils.BleStrUtils;
import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.TimeUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.UUID;

import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.TimeUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

@@ -172,7 +172,7 @@ public class TestCmdActivity extends BleBaseActivity implements OnCallbackDis, O
UUID UUID_NOTIFY = UUID.fromString(notify);
if (bleDevice != null && sendUuidServer != null) {
// bleDevice.setNotify(notifyOpen);
bleDevice.setOpenNotify(UUID_NOTIFY,sendUuidServer);
bleDevice.setNotify(sendUuidServer,UUID_NOTIFY);

}
}

+ 7
- 7
app/src/main/java/aicare/net/cn/sdk/ailinksdkdemoandroid/TestOtaActivity.java Voir le fichier

@@ -20,10 +20,11 @@ import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.elinkthings.bleotalibrary.dialog.DialogOtaManager;
import com.elinkthings.bleotalibrary.listener.OnBleOTAListener;
import com.pingwang.bluetoothlib.BleBaseActivity;
import com.pingwang.bluetoothlib.device.BleDevice;
import com.pingwang.bluetoothlib.listener.OnBleDeviceDataListener;
import com.pingwang.bluetoothlib.listener.OnBleOTAListener;
import com.pingwang.bluetoothlib.listener.OnCallbackBle;
import com.pingwang.bluetoothlib.utils.BleLog;

@@ -163,8 +164,8 @@ public class TestOtaActivity extends BleBaseActivity implements OnCallbackBle,
String byFileName = FileUtils.getByFileName()+mOTAFileName;
mList.add(TimeUtils.getTime() + "OTA已开始,请耐心等待");
mHandler.sendEmptyMessage(REFRESH_DATA);
mBleDevice.setOnDialogOTAListener(this);
mBleDevice.startDialogOta(byFileName);
DialogOtaManager build = DialogOtaManager.newBuilder().setOnBleOTAListener(this).setFilePath(byFileName).build(mBleDevice);
build.startOta();
break;


@@ -256,9 +257,7 @@ public class TestOtaActivity extends BleBaseActivity implements OnCallbackBle,
if (mBluetoothService != null) {
mBleDevice = mBluetoothService.getBleDevice(mAddress);
mBluetoothService.setOnCallback(this);
if (mBleDevice != null) {
mBleDevice.setOnDialogOTAListener(this);
}

}
}

@@ -347,8 +346,9 @@ public class TestOtaActivity extends BleBaseActivity implements OnCallbackBle,

private int progressOld;


@Override
public void onOtaProgress(float progress) {
public void onOtaProgress(float progress, int currentCount, int maxCount) {
int progressInt = (int) progress;
if (progressOld != progressInt) {
progressOld = progressInt;

+ 36
- 5
app/src/main/java/aicare/net/cn/sdk/ailinksdkdemoandroid/ToothBrushWifiBleActivity.java Voir le fichier

@@ -1,5 +1,6 @@
package aicare.net.cn.sdk.ailinksdkdemoandroid;

import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@@ -41,6 +42,7 @@ public class ToothBrushWifiBleActivity extends BleBaseActivity implements View.O
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//禁止横屏
setContentView(R.layout.activity_tooth_brush_wifi_ble);
findViewById(R.id.wifistatus).setOnClickListener(this);
findViewById(R.id.sn).setOnClickListener(this);
@@ -52,6 +54,7 @@ public class ToothBrushWifiBleActivity extends BleBaseActivity implements View.O
findViewById(R.id.default_try_out).setOnClickListener(this);
findViewById(R.id.default_time_mode).setOnClickListener(this);
findViewById(R.id.default_mode).setOnClickListener(this);
// findViewById(R.id.ota).setOnClickListener(this);

mEditText = findViewById(R.id.select_wifi_et);
select_gears_et = findViewById(R.id.select_gears_et);
@@ -250,7 +253,7 @@ public class ToothBrushWifiBleActivity extends BleBaseActivity implements View.O
mToothBrushWiFiBleUtilsData.queryBleStatus();
break;
case R.id.sn:
mToothBrushWiFiBleUtilsData.getDeviceId();
mToothBrushWiFiBleUtilsData.getDevicedid();
break;
case R.id.scan_wifi:
mToothBrushWiFiBleUtilsData.scanWifi();
@@ -270,7 +273,7 @@ public class ToothBrushWifiBleActivity extends BleBaseActivity implements View.O

if (data.equals("") || data.length() > 8) {
dataPaw = data.trim();
mToothBrushWiFiBleUtilsData.setWifiMac(wifimacMap.get(selectWifi));
mToothBrushWiFiBleUtilsData.setWifimac(wifimacMap.get(selectWifi));
} else {
Toast.makeText(ToothBrushWifiBleActivity.this, "密码格式不对", Toast.LENGTH_SHORT).show();
}
@@ -333,7 +336,7 @@ public class ToothBrushWifiBleActivity extends BleBaseActivity implements View.O
}
if (gears != null) {
try {
mToothBrushWiFiBleUtilsData.setTryOut(Integer.parseInt(gears[1]), Integer.parseInt(gears[2]),0,0);
mToothBrushWiFiBleUtilsData.setTryOut(Integer.parseInt(gears[1]), Integer.parseInt(gears[2]), 0, 0);
} catch (NumberFormatException e) {
e.printStackTrace();
Toast.makeText(this, "请输入时长,档位,档位级别(数字加符号)", Toast.LENGTH_SHORT).show();
@@ -345,9 +348,15 @@ public class ToothBrushWifiBleActivity extends BleBaseActivity implements View.O
break;
case R.id.default_time_mode:

mToothBrushWiFiBleUtilsData.getDefaultGearAndDuration();
mToothBrushWiFiBleUtilsData.getdefaultGearAndDuration();
break;
}

// case R.id.ota:
//
// mToothBrushWiFiBleUtilsData.setOta();
//
// break;
}

}

@@ -440,6 +449,28 @@ public class ToothBrushWifiBleActivity extends BleBaseActivity implements View.O
mMHandler.sendEmptyMessage(ToRefreUi);
}


@Override
public void onOTA(int status) {
String s = " ";
switch (status) {
case 0x00:
s = "wifiOTA 成功";
break;
case 0x01:
s = "wifiOTA 失败";
break;
case 0x02:
s = "不支持 wifiOTA";
break;
case 0x03:
s = "模块主动开始 wifiOTA(MCU 收到该指 令后不能断电,需要等待 OTA 成功或者失败)";
break;
}
mList.add(0, s);
mMHandler.sendEmptyMessage(ToRefreUi);
}

@Override
public void onShowData(String data) {


app/src/main/java/aicare/net/cn/sdk/ailinksdkdemoandroid/WeightScaleBle.java → app/src/main/java/aicare/net/cn/sdk/ailinksdkdemoandroid/WeightScaleBleActivity.java Voir le fichier

@@ -1,6 +1,7 @@
package aicare.net.cn.sdk.ailinksdkdemoandroid;


import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@@ -19,12 +20,12 @@ import com.pingwang.bluetoothlib.device.BleDevice;
import com.pingwang.bluetoothlib.device.SendBleBean;
import com.pingwang.bluetoothlib.listener.OnCallbackBle;
import com.pingwang.bluetoothlib.utils.BleStrUtils;
import aicare.net.cn.sdk.ailinksdkdemoandroid.config.BleDeviceConfig;

import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;

import aicare.net.cn.sdk.ailinksdkdemoandroid.config.BleDeviceConfig;
import androidx.annotation.Nullable;
import cn.net.aicare.modulelibrary.module.BodyFatScale.AppHistoryRecordBean;
import cn.net.aicare.modulelibrary.module.BodyFatScale.BodyFatBleUtilsData;
@@ -33,8 +34,8 @@ import cn.net.aicare.modulelibrary.module.BodyFatScale.BodyFatRecord;
import cn.net.aicare.modulelibrary.module.BodyFatScale.McuHistoryRecordBean;
import cn.net.aicare.modulelibrary.module.BodyFatScale.User;

public class WeightScaleBle extends BleBaseActivity implements View.OnClickListener, OnCallbackBle, BodyFatBleUtilsData.BleBodyFatCallback {
private String TAG = WeightScaleBle.class.getName();
public class WeightScaleBleActivity extends BleBaseActivity implements View.OnClickListener, OnCallbackBle, BodyFatBleUtilsData.BleBodyFatCallback {
private String TAG = WeightScaleBleActivity.class.getName();
private String mAddress;
private List<String> mlogList;
private List<String> mUserlogList;
@@ -53,6 +54,7 @@ public class WeightScaleBle extends BleBaseActivity implements View.OnClickListe
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//禁止横屏
setContentView(R.layout.activity_weight_scale_ble);
initView();
setUnitinit();
@@ -314,7 +316,7 @@ public class WeightScaleBle extends BleBaseActivity implements View.OnClickListe

@Override
public void onError(int code) {
mlogList.add(0, "历史记录Mcu:" + code);
mlogList.add(0, "错误码:" + code);
mMHandler.sendEmptyMessage(ToRefreUi);
}

@@ -430,6 +432,21 @@ public class WeightScaleBle extends BleBaseActivity implements View.OnClickListe
mMHandler.sendEmptyMessage(ToRefreUi);
}

@Override
public void onOtaCallback(int status) {

}

@Override
public void onSetIpStatus(int status) {

}

@Override
public void onSetIpUrlStatus(int status) {

}


@Override
public void onClick(View v) {

app/src/main/java/aicare/net/cn/sdk/ailinksdkdemoandroid/WeightScaleWifiBle.java → app/src/main/java/aicare/net/cn/sdk/ailinksdkdemoandroid/WeightScaleWifiBleActivity.java Voir le fichier

@@ -1,6 +1,9 @@
package aicare.net.cn.sdk.ailinksdkdemoandroid;


import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@@ -12,6 +15,7 @@ import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.Toast;

import com.elinkthings.bleotalibrary.listener.OnBleOTAListener;
import com.pingwang.bluetoothlib.BleBaseActivity;
import com.pingwang.bluetoothlib.bean.BleValueBean;
import com.pingwang.bluetoothlib.config.CmdConfig;
@@ -19,7 +23,6 @@ import com.pingwang.bluetoothlib.device.BleDevice;
import com.pingwang.bluetoothlib.listener.OnCallbackBle;
import com.pingwang.bluetoothlib.utils.BleLog;
import com.pingwang.bluetoothlib.utils.BleStrUtils;
import aicare.net.cn.sdk.ailinksdkdemoandroid.config.BleDeviceConfig;

import java.lang.ref.WeakReference;
import java.util.ArrayList;
@@ -27,6 +30,7 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

import aicare.net.cn.sdk.ailinksdkdemoandroid.config.BleDeviceConfig;
import androidx.annotation.Nullable;
import cn.net.aicare.modulelibrary.module.BodyFatScale.AppHistoryRecordBean;
import cn.net.aicare.modulelibrary.module.BodyFatScale.BodyFatBleUtilsData;
@@ -34,8 +38,8 @@ import cn.net.aicare.modulelibrary.module.BodyFatScale.BodyFatDataUtil;
import cn.net.aicare.modulelibrary.module.BodyFatScale.BodyFatRecord;
import cn.net.aicare.modulelibrary.module.BodyFatScale.McuHistoryRecordBean;

public class WeightScaleWifiBle extends BleBaseActivity implements View.OnClickListener, OnCallbackBle, BodyFatBleUtilsData.BleBodyFatCallback, BodyFatBleUtilsData.BleBodyFatWiFiCallback {
private String TAG = WeightScaleWifiBle.class.getName();
public class WeightScaleWifiBleActivity extends BleBaseActivity implements View.OnClickListener, OnCallbackBle, BodyFatBleUtilsData.BleBodyFatCallback, BodyFatBleUtilsData.BleBodyFatWiFiCallback {
private String TAG = WeightScaleWifiBleActivity.class.getName();
private String mAddress;
private List<String> mList;
private ArrayAdapter listAdapter;
@@ -44,10 +48,34 @@ public class WeightScaleWifiBle extends BleBaseActivity implements View.OnClickL
private MHandler mMHandler;
private EditText mEditText;
private RadioButton kg, jing, stlb, lb;
private byte[] testIp = new byte[]{0x74,
0x65, 0x73, 0x74, 0x2e,
0x61, 0x69, 0x6c, 0x69,
0x6e, 0x6b, 0x2e, 0x72,
0x65, 0x76, 0x69, 0x63,
0x65, 0x2e, 0x61, 0x69,
0x63, 0x61, 0x72, 0x65,
0x2e, 0x6e, 0x65, 0x74,
0x2e, 0x63, 0x6e};

private byte[] productIp = new byte[]{
0x61, 0x69, 0x6c, 0x69, 0x6e, 0x6b, 0x2e,
0x69, 0x6f, 0x74, 0x2e, 0x61, 0x69, 0x63,
0x61, 0x72, 0x65, 0x2e, 0x6e, 0x65, 0x74,
0x2e, 0x63, 0x6e};

private byte[] IpUrl = new byte[]{
0x2f, 0x64, 0x65, 0x76, 0x69,
0x76, 0x63, 0x64, 0x2f, 0x73,
0x65, 0x72, 0x76, 0x64, 0x72,
0x52, 0x65, 0x64, 0x69, 0x72,
0x65, 0x63, 0x74, 0x2f};
private boolean isTest = false;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//禁止横屏
setContentView(R.layout.activity_weight_scale_wifi_ble);
findViewById(R.id.wifistatus).setOnClickListener(this);
findViewById(R.id.sn).setOnClickListener(this);
@@ -57,6 +85,8 @@ public class WeightScaleWifiBle extends BleBaseActivity implements View.OnClickL
findViewById(R.id.setedname).setOnClickListener(this);
findViewById(R.id.setedpaw).setOnClickListener(this);
findViewById(R.id.setedmac).setOnClickListener(this);
// findViewById(R.id.ota).setOnClickListener(this);
// findViewById(R.id.surroundings).setOnClickListener(this);
mEditText = findViewById(R.id.select_wifi_et);
kg = findViewById(R.id.kg);
jing = findViewById(R.id.jin);
@@ -219,6 +249,26 @@ public class WeightScaleWifiBle extends BleBaseActivity implements View.OnClickL
mMHandler.sendEmptyMessage(ToRefreUi);
}

@Override
public void onOtaCallback(int status) {
switch (status) {
case 0x00:
mList.add(0, "ota状态:" + status + " wifiOTA成功");
break;
case 0x01:
mList.add(0, "ota状态:" + status + " wifiOTA失败");
break;
case 0x02:
mList.add(0, "ota状态:" + status + " 不支持wifiOTA");
break;
case 0x03:
mList.add(0, "ota状态:" + status + " 模块主动开始wifiOTA(MCU收到该指令后不能断电,需要等待OTA成功或者失败)");
break;

}
mMHandler.sendEmptyMessage(ToRefreUi);
}

@Override
public void onAdc(int adc, int algorithmic) {
mList.add(0, "阻抗:" + adc + " 算法位:" + algorithmic);
@@ -278,12 +328,12 @@ public class WeightScaleWifiBle extends BleBaseActivity implements View.OnClickL

@Override
public void requestSynTime() {
mList.add(0,"同步时间");
mList.add(0, "同步时间");
bodyFatBleUtilsData.sendData(BodyFatDataUtil.getInstance().synTime());
}

@Override
public void setTimeCallback(int type,int status) {
public void setTimeCallback(int type, int status) {
String msg = "";
if (type == CmdConfig.SET_SYS_TIME) {
msg = "设置系统当前时间:";
@@ -401,18 +451,16 @@ public class WeightScaleWifiBle extends BleBaseActivity implements View.OnClickL
private boolean issetMac = false;

/**
*
* @param type
* @param status {@link BodyFatDataUtil#STATUS_SUCCESS}
*
*/
@Override
public void OnSetWifiNameOrPwdOrConnectCallback(int type, int status) {
if (type == BodyFatDataUtil.SET_WIFI_MAC) {
mList.add(0, "获取到设置的mac地址状态 " + status);
if (status == BodyFatDataUtil.STATUS_SUCCESS){
if (status == BodyFatDataUtil.STATUS_SUCCESS) {
issetMac = true;
}else {
} else {

}

@@ -450,6 +498,41 @@ public class WeightScaleWifiBle extends BleBaseActivity implements View.OnClickL
mMHandler.sendEmptyMessage(ToRefreUi);
}

@Override
public void onSetIpStatus(int status) {
if (status == 0) {
if (isTest) {
mList.add(0, "设置环境IP为生产环境成功");
mList.add(0, "设置环境路径为生产环境");
} else {
mList.add(0, "设置环境IP为测试环境成功");
mList.add(0, "设置环境路径为测试环境");
}
setIpUrl(IpUrl);
} else {
mList.add(0, "设置环境IP失败");
}
listAdapter.notifyDataSetChanged();
}

@Override
public void onSetIpUrlStatus(int status) {
if (status == 0) {
if (isTest) {
mList.add(0, "设置环境路径为生产环境成功");
isTest = false;

} else {
mList.add(0, "设置环境路径为测试环境成功");
isTest = true;

}
} else {
mList.add(0, "设置环境路径失败");
}
listAdapter.notifyDataSetChanged();
}

@Override
public void onClick(View v) {
int id = v.getId();
@@ -479,7 +562,7 @@ public class WeightScaleWifiBle extends BleBaseActivity implements View.OnClickL
if (data.equals("") || data.length() > 8) {
setPaw(data);
} else {
Toast.makeText(WeightScaleWifiBle.this, "密码格式不对", Toast.LENGTH_SHORT).show();
Toast.makeText(WeightScaleWifiBleActivity.this, "密码格式不对", Toast.LENGTH_SHORT).show();
}
}

@@ -507,8 +590,80 @@ public class WeightScaleWifiBle extends BleBaseActivity implements View.OnClickL
case R.id.disconnect:
bodyFatBleUtilsData.sendData(BodyFatDataUtil.getInstance().disconnectWifi());
break;
// case R.id.ota:
//// bodyFatBleUtilsData.sendData(BodyFatDataUtil.getInstance().ota());
//// OtaUtil otaUtil=new OtaUtil(this,mBluetoothService.getBleDevice(mAddress));
// showFileChooser();
// break;
// case R.id.surroundings:
// if (isTest) {
// setIp(productIp);
// mList.add(0, "设置环境IP为生产环境");
//
// } else {
// setIp(testIp);
// mList.add(0, "设置环境IP为测试环境");
//
//
// }
// listAdapter.notifyDataSetChanged();
//
// break;


}

}


private void setIp(byte[] ips) {
if (ips.length <= 14)
bodyFatBleUtilsData.sendData(BodyFatDataUtil.getInstance().environmentIp(0, ips));
else {
boolean isend = false;
int i = 0;
byte[] byte1 = ips;
while (!isend) {
if (byte1.length > 14) {
byte[] bytes = new byte[14];
System.arraycopy(ips, i, bytes, 0, bytes.length);
bodyFatBleUtilsData.sendData(BodyFatDataUtil.getInstance().environmentIp(1, bytes));
i = i + 14;
byte1 = Arrays.copyOf(ips, ips.length - i);
} else {
isend = true;
byte[] bytes = new byte[ips.length - i];
System.arraycopy(ips, i, bytes, 0, bytes.length);
bodyFatBleUtilsData.sendData(BodyFatDataUtil.getInstance().environmentIp(0, bytes));
}

}
}

}

private void setIpUrl(byte[] setIpUrl) {
if (setIpUrl.length <= 14)
bodyFatBleUtilsData.sendData(BodyFatDataUtil.getInstance().environmentUrl(0, setIpUrl));
else {
boolean isend = false;
int i = 0;
byte[] byte1 = setIpUrl;
while (!isend) {
if (byte1.length > 14) {
byte[] bytes = new byte[14];
System.arraycopy(setIpUrl, i, bytes, 0, bytes.length);
bodyFatBleUtilsData.sendData(BodyFatDataUtil.getInstance().environmentUrl(1, bytes));
i = i + 14;
byte1 = Arrays.copyOf(setIpUrl, setIpUrl.length - i);
} else {
isend = true;
byte[] bytes = new byte[setIpUrl.length - i];
System.arraycopy(setIpUrl, i, bytes, 0, bytes.length);
bodyFatBleUtilsData.sendData(BodyFatDataUtil.getInstance().environmentUrl(0, bytes));
}

}
}

}
@@ -579,5 +734,49 @@ public class WeightScaleWifiBle extends BleBaseActivity implements View.OnClickL
}
}

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
Uri uri = data.getData();
String path = uri.getPath();
mList.add(0, "ota准备就绪,请勿操作");
listAdapter.notifyDataSetChanged();
bodyFatBleUtilsData.initOtaUtil(this, uri, new OnBleOTAListener() {
@Override
public void onOtaSuccess() {
mList.add(0, "ota成功");
listAdapter.notifyDataSetChanged();

}

@Override
public void onOtaFailure(int cmd, String err) {
mList.add(0, "失败");
listAdapter.notifyDataSetChanged();
}

@Override
public void onOtaProgress(float progress, int currentCount, int maxCount) {
mList.add(0, "otaProgress:"+progress);
listAdapter.notifyDataSetChanged();
}
});
} else {

}
}
private static final int FILE_SELECT_CODE = 0x1002;
private void showFileChooser() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);

try {
startActivityForResult(Intent.createChooser(intent, "Select a File to Upload"), FILE_SELECT_CODE);
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(this, "Please install a File Manager.", Toast.LENGTH_SHORT).show();
}
}

}

+ 56
- 0
app/src/main/java/aicare/net/cn/sdk/ailinksdkdemoandroid/config/BleDeviceConfig.java Voir le fichier

@@ -122,6 +122,62 @@ public class BleDeviceConfig {
public final static int SMART_MASK =0x0022;


/**
* 百丽达
*/
public final static int BLD_WEIGHT =10086;

/**
* 蓝牙血氧仪
*/
public final static int BLE_BOOLD_OXYGEN =0x21;

/**
* 咖啡秤
*/
public final static int COFFEE_SCALE = 0x24;
/**
* 电滑板车
*/
public final static int SMART_SCOOTER =0x0025;

/**
* 共享充电器
*/
public final static int SHARE_CHARGER = 0x1003;

/**
* 共享充电器
*/
public final static int SHARE_SOCKET = 0x1005;

/**
* 共享套套机
*/
public final static int SHARE_CONDOM = 0x1007;


/**
* 身高体脂秤
*/
public final static int HEIGHT_BODY_FAT = 0x0026;


/**
* 寻物器,暂定,待修改
*/
public final static int FIND_DEVICE = -5;

/**
* 食品温度计
*/
public final static int FOOD_TEMP = 0x002b;
public final static int TEMP_Humidity = 0x002e;


/**
* 验证不握手不加密的id
*/
public final static int CLEAR_SHAKE_HANDS = -6;

}

Chargement…
Annuler
Enregistrer