From: xiewei <892331662@qq.com> Date: Fri, 18 Oct 2024 03:13:17 +0000 (+0800) Subject: 241018:文件传输单独拎出来 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=refs%2Fheads%2Fble_tool;p=mirrors%2Fhs-sdk.git 241018:文件传输单独拎出来 --- diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 53ab160..3990b05 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -31,9 +31,9 @@ - + android:exported="false" />--> diff --git a/app/src/main/java/com/zhixun/blesdk/debug_tool/utils/FuncationChosePopupWindow.java b/app/src/main/java/com/zhixun/blesdk/debug_tool/utils/FuncationChosePopupWindow.java index 1550e12..2814fb8 100644 --- a/app/src/main/java/com/zhixun/blesdk/debug_tool/utils/FuncationChosePopupWindow.java +++ b/app/src/main/java/com/zhixun/blesdk/debug_tool/utils/FuncationChosePopupWindow.java @@ -502,19 +502,7 @@ public class FuncationChosePopupWindow extends PopupWindow { });*/ break; case 43: - HsAgentSdk.getInstance().getAPI().cancleFileSend(1, new OnMsgSendCallBack() { - @Override - public void onResponse(MsgResponse msgResponse) { - if(onResultListener!=null){ - onResultListener.OnResult(data.get(position)+": "+msgResponse.getBody()); - } - } - - @Override - public void onFailure(int code, String msg) { - - } - }); + HsAgentSdk.getInstance().getAPI().cancleFileSend(1); break; case 44: msgBody = new E3MsgBody(MsgBody.TYPE_GET_SAO2); diff --git a/hssdk/build.gradle b/hssdk/build.gradle index 3d3d072..74c3e9a 100644 --- a/hssdk/build.gradle +++ b/hssdk/build.gradle @@ -45,8 +45,10 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.8.0' - implementation files('libs\\Poly-SDK-v1.6-240812.jar') -// implementation files('libs\\Poly-SDK-v1.5-240809.jar') + + implementation files('libs\\Poly-SDK-v1.6-241016.jar') + implementation files('libs\\HS-FILE-SDK-v0.1-241015.jar') + testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' diff --git a/hssdk/libs/HS-FILE-SDK-v0.1-241015.jar b/hssdk/libs/HS-FILE-SDK-v0.1-241015.jar new file mode 100644 index 0000000..c3ea0be Binary files /dev/null and b/hssdk/libs/HS-FILE-SDK-v0.1-241015.jar differ diff --git a/hssdk/libs/Poly-SDK-v1.6-241016.jar b/hssdk/libs/Poly-SDK-v1.6-241016.jar new file mode 100644 index 0000000..9632876 Binary files /dev/null and b/hssdk/libs/Poly-SDK-v1.6-241016.jar differ diff --git a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/HsAgentSdk.java b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/HsAgentSdk.java index de5233c..133edce 100644 --- a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/HsAgentSdk.java +++ b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/HsAgentSdk.java @@ -68,6 +68,7 @@ public class HsAgentSdk{ SobLog.isCloseLog = !isDebug; SobLog.saveLog = saveLog; wearAPI.init(context); + HsFileAgentSdk.getInstance().init(context,isDebug,saveLog); } public int getFileCannel() { diff --git a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/bttools/BleHandle.java b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/bttools/BleHandle.java index 0ef895f..a295c2a 100644 --- a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/bttools/BleHandle.java +++ b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/bttools/BleHandle.java @@ -3,18 +3,16 @@ package com.zhixun.blesdk.hssdk.bttools; import static android.content.pm.PackageManager.PERMISSION_GRANTED; -import static com.zhixun.blesdk.hssdk.callback.BtVtransferCallback.STATE_CONNECTFAIL; - import android.Manifest; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothGatt; import android.bluetooth.BluetoothGattCallback; import android.bluetooth.BluetoothGattCharacteristic; +import android.bluetooth.BluetoothGattServerCallback; import android.bluetooth.BluetoothGattService; import android.bluetooth.BluetoothManager; import android.bluetooth.BluetoothProfile; -import android.bluetooth.BluetoothSocket; import android.bluetooth.le.BluetoothLeScanner; import android.bluetooth.le.ScanCallback; import android.bluetooth.le.ScanFilter; @@ -25,7 +23,6 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager; -import android.content.pm.ProviderInfo; import android.os.Build; import android.os.Handler; import android.os.Looper; @@ -33,7 +30,6 @@ import android.os.Message; import android.os.ParcelUuid; import android.text.TextUtils; import android.util.Log; -import android.widget.Toast; import androidx.annotation.NonNull; import androidx.core.app.ActivityCompat; @@ -41,26 +37,26 @@ import androidx.core.content.ContextCompat; import com.google.gson.Gson; import com.zhixun.blesdk.hssdk.HsAgentSdk; +import com.zhixun.blesdk.hssdk.HsFileAgentSdk; import com.zhixun.blesdk.hssdk.callback.BtVtransferCallback; import com.zhixun.blesdk.hssdk.callback.IBtScanCallback; -import com.zhixun.blesdk.hssdk.callback.ISendFileListener; import com.zhixun.blesdk.hssdk.callback.OnMsgSendCallBack; +import com.zhixun.blesdk.hssdk.data.AiManage; import com.zhixun.blesdk.hssdk.data.BleMsgReceiverHandler; import com.zhixun.blesdk.hssdk.data.BleMsgSendHandler; -import com.zhixun.blesdk.hssdk.data.FileHandler; import com.zhixun.blesdk.hssdk.entity.AppTime; import com.zhixun.blesdk.hssdk.entity.E4MsgBody; import com.zhixun.blesdk.hssdk.entity.HsWearDevice; import com.zhixun.blesdk.hssdk.entity.MsgBody; import com.zhixun.blesdk.hssdk.entity.MsgResponse; import com.zhixun.blesdk.hssdk.entity.PhoneInfo; +import com.zhixun.blesdk.hssdk.file.filecallback.BtMsgCallback; +import com.zhixun.blesdk.hssdk.file.filecallback.IBtReceiverCallback; import com.zhixun.blesdk.hssdk.util.BleDataUtil; import com.zhixun.blesdk.hssdk.util.BleUuidUtil; import com.zhixun.blesdk.hssdk.util.SobLog; import com.zhixun.blesdk.hssdk.util.SpUtils; -import java.io.IOException; -import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Calendar; @@ -108,6 +104,7 @@ public class BleHandle { return sInstance; } + private IBtReceiverCallback receiverCallback; public void init(Context context) { Log.e(TAG, "Bluetooth Handle Start"); @@ -134,7 +131,24 @@ public class BleHandle { // 打开蓝牙 openBle(); initScanCallback(); + HsFileAgentSdk.getInstance().getAPI().setBtMsgCallback(new BtMsgCallback() { + @Override + public void setReceivedCallBack(IBtReceiverCallback iBtReceiverCallback) { + receiverCallback = iBtReceiverCallback; + } + + @Override + public void toSend(byte[] bytes) { + deviceWrite(bytes, MsgBody.CHANNEL_E6); + } + }); + + if (ActivityCompat.checkSelfPermission(context, Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) { + return; + } + /*bluetoothManager.openGattServer(context, new BluetoothGattServerCallback() { + });*/ } @@ -340,6 +354,7 @@ public class BleHandle { } refreshDeviceCache(); HsAgentSdk.getInstance().getAPI().release(); + // mBleConnectDevice = null; } } @@ -354,9 +369,11 @@ public class BleHandle { mBluetoothGatt.requestConnectionPriority(BluetoothGatt.CONNECTION_PRIORITY_HIGH); } BleMsgSendHandler.getInstance().setMtu(mtu); + HsFileAgentSdk.getInstance().getAPI().setMtu(mtu); } } + @Override public void onServicesDiscovered(BluetoothGatt gatt, int status) { // super.onServicesDiscovered(gatt, status); @@ -378,7 +395,6 @@ public class BleHandle { public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) { SobLog.d(TAG, "onCharacteristicWrite--" + status + "--"); - } @Override @@ -414,6 +430,8 @@ public class BleHandle { (value.length > 100 ? value.length : ByteTools.byteArrToHex(value))); if (BleUuidUtil.getInstance().getNotifyUUID().toString().equals(characteristic.getUuid().toString())) { BleMsgReceiverHandler.getInstance().receiverData(value); + }else if (BleUuidUtil.getInstance().getFileNotifyUUID().toString().equals(characteristic.getUuid().toString())) { + receiverCallback.onReceicerData(value); } } @@ -523,8 +541,6 @@ public class BleHandle { } public void creatBond(){ - - BluetoothDevice bluetoothDevice = mBluetoothAdapter.getRemoteDevice(mBleConnectDevice.getAddress()); //得到配对的设备列表,清除已配对的设备 removePairDevice(); @@ -697,6 +713,9 @@ public class BleHandle { BluetoothGattCharacteristic characteristic2 = service.getCharacteristic(BleUuidUtil.getInstance().getReadUUID());//对应server端的setCharacteristic方法 mBluetoothGatt.setCharacteristicNotification(characteristic2, true); + + BluetoothGattCharacteristic characteristic3 = service.getCharacteristic(BleUuidUtil.getInstance().getFileNotifyUUID());//对应server端的setCharacteristic方法 + mBluetoothGatt.setCharacteristicNotification(characteristic3, true); } public void deviceWrite(byte[] msg, int type) { diff --git a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/callback/IHSWearAPI.java b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/callback/IHSWearAPI.java index 4019fd3..56d77cf 100644 --- a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/callback/IHSWearAPI.java +++ b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/callback/IHSWearAPI.java @@ -4,12 +4,14 @@ import android.content.Context; import android.graphics.Bitmap; import com.zhixun.android.sdk.polysdk.callback.IPicCompressCallback; -import com.zhixun.blesdk.hssdk.entity.OTAInfo; -import com.zhixun.blesdk.hssdk.entity.file.HsEpoInfo; import com.zhixun.blesdk.hssdk.entity.HsNotifyParams; import com.zhixun.blesdk.hssdk.entity.HsWearDevice; import com.zhixun.blesdk.hssdk.entity.MsgBody; +import com.zhixun.blesdk.hssdk.entity.file.HsEpoInfo; import com.zhixun.blesdk.hssdk.entity.file.HsMarketDialSum; +import com.zhixun.blesdk.hssdk.entity.file.HsMp3Info; +import com.zhixun.blesdk.hssdk.entity.OTAInfo; + import java.util.List; @@ -60,7 +62,7 @@ public interface IHSWearAPI { void removeNotifyMsg(int uid, OnMsgSendCallBack callBack); void sendEpoFile(HsEpoInfo epoInfo, OnMsgSendCallBack callBack); - void sendMusicFile(String filePath, OnMsgSendCallBack callBack); + void sendMusicFile(String filePath, HsMp3Info mp3Info, ISendFileListener callBack); void setFindPhoneListener(OnFindPhoneListener onFindPhoneListener); //void addReceiveCallback(OnReceiveCallback var1); @@ -79,7 +81,7 @@ public interface IHSWearAPI { void setTakePhotoListener(OnTakePhotoListener onTakePhotoListener); void setOnGetWeatherListener(OnGetWeatherListener onGetWeatherListener); - void startOTA(String path,OTAInfo otaInfo,ISendFileListener sendFileListener); + void startOTA(String path, OTAInfo otaInfo, ISendFileListener sendFileListener); /** * 1:OTA @@ -88,7 +90,7 @@ public interface IHSWearAPI { * @param type * @param callBack */ - void cancleFileSend(int type, OnMsgSendCallBack callBack); + void cancleFileSend(int type); void installMarketDial(HsMarketDialSum dialSum, List files, ISendFileListener sendFileListener); diff --git a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/data/AiManage.java b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/data/AiManage.java index cede167..9b5978a 100644 --- a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/data/AiManage.java +++ b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/data/AiManage.java @@ -64,7 +64,7 @@ public class AiManage { private boolean isLogin = false; private boolean isTransStart = false; public void init(Context context){ - PolymerizeAgent.getInstance().init(context,true,true); + PolymerizeAgent.getInstance().init(context,true,true,false); doLogin(); PolymerizeAgent.getInstance().getAiAPI().setOnTranscriptionDataChange(new OnTranscriptionDataChange() { @Override @@ -72,7 +72,6 @@ public class AiManage { SobLog.i(TAG,"onStartChange--"+b); isTransStart = b; if(b){ - sendAudio(audio); }else { receiverLenth = 0; @@ -174,6 +173,7 @@ public class AiManage { @Override public void onSuccess(int page,int all,byte[] bytes) { Log.i(TAG,"onSuccess--"+bytes.length); + PolymerizeAgent.getInstance().getAiAPI().sendTransByte(bytes); if(page==all-1){ @@ -204,7 +204,7 @@ public class AiManage { audio = (byte[]) msgResponse.getBody(); PolymerizeAgent.getInstance().getAiAPI().startTrans(); -// SobLog.d(TAG,"sendAudio--"+audio.length); + SobLog.d(TAG,"sendAudio--"+audio.length); receiverLenth = receiverLenth+audio.length; SobLog.d(TAG,receiverLenth+"/"+allLenth); @@ -234,21 +234,25 @@ public class AiManage { public void clear(){ if(isTransStart){ - PolymerizeAgent.getInstance().getAiAPI().stopTrans(); } allLenth = 0; receiverLenth = 0; + audio = null; + } + + public void release(){ + PolymerizeAgent.getInstance().getAuthenAPI().release(); } public void doLogin(){ String pwd = SpUtils.getInstance().getStringValue(SpUtils.KEY_AI_PWD); if(TextUtils.isEmpty(pwd)){ - pwd = "CVOachlw1DO1Ei5uabOkHd1wRYoMQA"; + pwd = "lHEBdxdqXdhMNdXqNIdcTlWVBcNwcd"; } - PolymerizeAgent.getInstance().getAuthenAPI().authentication("281106AFB0F7" - , pwd, "HHosiYUNdG42t1cTgKOzIUPOvAVMI2QT", new AuthCallback() { + PolymerizeAgent.getInstance().getAuthenAPI().authentication("28110687C456" + , pwd, "4EepovakpbqhZUnUDwH42KAADYGv4UUe", new AuthCallback() { @Override public void onSuccess(String result) { isLogin = true; diff --git a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/data/FileHandler.java b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/data/FileHandler.java index 3722ba5..57820ad 100644 --- a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/data/FileHandler.java +++ b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/data/FileHandler.java @@ -15,13 +15,14 @@ import com.zhixun.blesdk.hssdk.callback.IFileReceiverCallback; import com.zhixun.blesdk.hssdk.callback.ISendFileListener; import com.zhixun.blesdk.hssdk.callback.OnMsgSendCallBack; import com.zhixun.blesdk.hssdk.entity.HsLogInfo; -import com.zhixun.blesdk.hssdk.entity.OTAInfo; +import com.zhixun.blesdk.hssdk.entity.MsgBody; +import com.zhixun.blesdk.hssdk.entity.MsgResponse; + import com.zhixun.blesdk.hssdk.entity.file.HsCustomDialSum; import com.zhixun.blesdk.hssdk.entity.file.HsEpoInfo; import com.zhixun.blesdk.hssdk.entity.file.HsMarketDialSum; import com.zhixun.blesdk.hssdk.entity.file.HsMp3Info; -import com.zhixun.blesdk.hssdk.entity.MsgBody; -import com.zhixun.blesdk.hssdk.entity.MsgResponse; +import com.zhixun.blesdk.hssdk.entity.file.OTAInfo; import com.zhixun.blesdk.hssdk.util.SobLog; import com.zhixun.blesdk.hssdk.util.SpUtils; @@ -276,7 +277,7 @@ public class FileHandler { private int fileType = 0;//1ota 2市场表盘 3音乐 - public void startOta(String path,OTAInfo otaInfo) { + public void startOta(String path, OTAInfo otaInfo) { MsgBody msgBody = new MsgBody(); msgBody.setChannel(MsgBody.CHANNEL_E0); diff --git a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/data/FileHandlerE6.java b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/data/FileHandlerE6.java index d8d16a1..4dd6074 100644 --- a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/data/FileHandlerE6.java +++ b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/data/FileHandlerE6.java @@ -1,7 +1,5 @@ package com.zhixun.blesdk.hssdk.data; -import static com.zhixun.blesdk.hssdk.data.ReceiverLooperThread.TYPE_RECEIVER_LOG_INFO_RESULT; - import android.os.Handler; import android.os.Looper; import android.os.Message; @@ -11,26 +9,19 @@ import androidx.annotation.NonNull; import com.google.gson.Gson; import com.zhixun.blesdk.hssdk.bttools.BleHandle; import com.zhixun.blesdk.hssdk.bttools.ByteTools; -import com.zhixun.blesdk.hssdk.callback.IFileReceiverCallback; import com.zhixun.blesdk.hssdk.callback.ISendFileListener; import com.zhixun.blesdk.hssdk.callback.OnMsgSendCallBack; -import com.zhixun.blesdk.hssdk.entity.HsLogInfo; import com.zhixun.blesdk.hssdk.entity.MsgBody; import com.zhixun.blesdk.hssdk.entity.MsgResponse; -import com.zhixun.blesdk.hssdk.entity.OTAInfo; -import com.zhixun.blesdk.hssdk.entity.file.HsCustomDialSum; -import com.zhixun.blesdk.hssdk.entity.file.HsEpoInfo; + import com.zhixun.blesdk.hssdk.entity.file.HsMarketDialSum; -import com.zhixun.blesdk.hssdk.entity.file.HsMp3Info; +import com.zhixun.blesdk.hssdk.entity.file.OTAInfo; import com.zhixun.blesdk.hssdk.util.SobLog; -import com.zhixun.blesdk.hssdk.util.SpUtils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; -import java.io.FileOutputStream; import java.io.IOException; -import java.io.OutputStream; import java.util.ArrayList; import java.util.List; @@ -166,7 +157,7 @@ public class FileHandlerE6 { private int fileType = 0;//1ota 2市场表盘 3音乐 - public void startOta(String path,OTAInfo otaInfo) { + public void startOta(String path, OTAInfo otaInfo) { MsgBody msgBody = new MsgBody(); msgBody.setChannel(MsgBody.CHANNEL_E6); diff --git a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/data/HsApiKit.java b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/data/HsApiKit.java index f039897..0feafd6 100644 --- a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/data/HsApiKit.java +++ b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/data/HsApiKit.java @@ -2,14 +2,11 @@ package com.zhixun.blesdk.hssdk.data; import android.content.Context; import android.graphics.Bitmap; -import android.text.TextUtils; -import android.util.Log; import com.google.gson.Gson; import com.zhixun.android.sdk.polysdk.PolymerizeAgent; -import com.zhixun.android.sdk.polysdk.callback.AuthCallback; import com.zhixun.android.sdk.polysdk.callback.IPicCompressCallback; -import com.zhixun.blesdk.hssdk.HsAgentSdk; +import com.zhixun.blesdk.hssdk.HsFileAgentSdk; import com.zhixun.blesdk.hssdk.bttools.BleHandle; import com.zhixun.blesdk.hssdk.callback.BtVtransferCallback; import com.zhixun.blesdk.hssdk.bttools.ByteTools; @@ -24,14 +21,18 @@ import com.zhixun.blesdk.hssdk.callback.OnTakePhotoListener; import com.zhixun.blesdk.hssdk.callback.OnTrainStateListener; import com.zhixun.blesdk.hssdk.callback.OnUnBondDeviceCallBack; import com.zhixun.blesdk.hssdk.entity.E4MsgBody; -import com.zhixun.blesdk.hssdk.entity.MsgResponse; -import com.zhixun.blesdk.hssdk.entity.OTAInfo; import com.zhixun.blesdk.hssdk.entity.E3MsgBody; -import com.zhixun.blesdk.hssdk.entity.file.HsEpoInfo; import com.zhixun.blesdk.hssdk.entity.HsNotifyParams; import com.zhixun.blesdk.hssdk.entity.HsWearDevice; import com.zhixun.blesdk.hssdk.entity.MsgBody; +import com.zhixun.blesdk.hssdk.entity.file.HsEpoInfo; import com.zhixun.blesdk.hssdk.entity.file.HsMarketDialSum; +import com.zhixun.blesdk.hssdk.entity.file.HsMp3Info; +import com.zhixun.blesdk.hssdk.entity.OTAInfo; +import com.zhixun.blesdk.hssdk.file.entity.HsE6MarketDialSum; +import com.zhixun.blesdk.hssdk.file.entity.HsE6Mp3Info; +import com.zhixun.blesdk.hssdk.file.entity.OTAE6Info; +import com.zhixun.blesdk.hssdk.file.filecallback.IE6SendFileListener; import com.zhixun.blesdk.hssdk.util.JsonUtils; import com.zhixun.blesdk.hssdk.util.SobLog; import com.zhixun.blesdk.hssdk.util.SpUtils; @@ -56,17 +57,20 @@ public class HsApiKit implements IHSWearAPI { BleMsgSendHandler.getInstance().init(); BleMsgReceiverHandler.getInstance().init(); FileHandler.getInstance().init(); - FileHandlerE6.getInstance().init(); +// FileHandlerE6.getInstance().init(); + } @Override public void release() { - FileHandler.getInstance().cancle(2); + //FileHandler.getInstance().cancle(2); + HsFileAgentSdk.getInstance().getAPI().release(); FileHandler.getInstance().closeReceiver(); BleHandle.getInstance().stopScan(); BleMsgSendHandler.getInstance().clear(); BleMsgReceiverHandler.getInstance().clear(); AiManage.getInstance().clear(); + AiManage.getInstance().release(); } @Override public void setWearDevice(HsWearDevice hsWearDevice) { @@ -196,8 +200,24 @@ public class HsApiKit implements IHSWearAPI { } @Override - public void sendMusicFile(String filePath, OnMsgSendCallBack callBack) { + public void sendMusicFile(String filePath, HsMp3Info mp3Info, ISendFileListener callBack) { + HsE6Mp3Info e6Mp3Info = JsonUtils.stringToObject(new Gson().toJson(mp3Info),HsE6Mp3Info.class); + HsFileAgentSdk.getInstance().getAPI().sendMp3(filePath, e6Mp3Info, new IE6SendFileListener() { + @Override + public void onProgressChange(int i) { + if(callBack!=null){ + callBack.onProgressChange(i); + } + } + + @Override + public void onStateChange(int i, String s) { + if(callBack!=null){ + callBack.onStateChange(i,s); + } + } + }); } @Override @@ -233,8 +253,8 @@ public class HsApiKit implements IHSWearAPI { } @Override - public void startOTA(String path,OTAInfo otaInfo, ISendFileListener sendFileListener) { - if(FileHandler.getInstance().isFileSendStart||FileHandler.getInstance().isReceiverStart + public void startOTA(String path, OTAInfo otaInfo, ISendFileListener sendFileListener) { + /*if(FileHandler.getInstance().isFileSendStart||FileHandler.getInstance().isReceiverStart ||FileHandlerE6.getInstance().isFileSendStart){ if(sendFileListener!=null){ sendFileListener.onStateChange(ISendFileListener.STATE_FAIL,"有文件正在传输"); @@ -247,28 +267,52 @@ public class HsApiKit implements IHSWearAPI { }else { FileHandlerE6.getInstance().setSendFileListener(sendFileListener); FileHandlerE6.getInstance().startOta(path,otaInfo); - } + }*/ + OTAE6Info otae6Info = JsonUtils.stringToObject(new Gson().toJson(otaInfo),OTAE6Info.class); + HsFileAgentSdk.getInstance().getAPI().startOta(path, otae6Info, new IE6SendFileListener() { + @Override + public void onProgressChange(int i) { + if(sendFileListener!=null){ + sendFileListener.onProgressChange(i); + } + } + @Override + public void onStateChange(int i, String s) { + if(sendFileListener!=null){ + sendFileListener.onStateChange(i,s); + } + } + }); } @Override - public void cancleFileSend(int type, OnMsgSendCallBack callBack) { + public void cancleFileSend(int type) { // if(!FileHandler.getInstance().isFileSendStart)return; - E3MsgBody msgBody = new E3MsgBody(MsgBody.TYPE_CANCLE_SEND_FILE); - msgBody.setData(ByteTools.little_intToByte(type,1)); - sendMessage(msgBody,callBack); + HsFileAgentSdk.getInstance().getAPI().cancleFileSend(type); } @Override public void installMarketDial(HsMarketDialSum dialSum, List files, ISendFileListener sendFileListener) { - if(FileHandler.getInstance().isFileSendStart||FileHandler.getInstance().isReceiverStart){ - if(sendFileListener!=null){ - sendFileListener.onStateChange(ISendFileListener.STATE_FAIL,"有文件正在传输"); + + /* FileHandler.getInstance().setSendFileListener(sendFileListener); + FileHandler.getInstance().installMarketDial(dialSum,files);*/ + HsE6MarketDialSum e6MarketDialSum = JsonUtils.stringToObject(new Gson().toJson(dialSum),HsE6MarketDialSum.class); + HsFileAgentSdk.getInstance().getAPI().installMarketDial(e6MarketDialSum, files, new IE6SendFileListener() { + @Override + public void onProgressChange(int i) { + if(sendFileListener!=null){ + sendFileListener.onProgressChange(i); + } } - return; - } - FileHandler.getInstance().setSendFileListener(sendFileListener); - FileHandler.getInstance().installMarketDial(dialSum,files); + + @Override + public void onStateChange(int i, String s) { + if(sendFileListener!=null){ + sendFileListener.onStateChange(i,s); + } + } + }); } @Override diff --git a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/data/ReceiverLooperThread.java b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/data/ReceiverLooperThread.java index 3694c3e..a3848ce 100644 --- a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/data/ReceiverLooperThread.java +++ b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/data/ReceiverLooperThread.java @@ -437,6 +437,7 @@ public class ReceiverLooperThread extends Thread { } break; case MsgBody.TYPE_GET_EXCLOG: + SobLog.d(TAG, "TYPE_RECEIVER_LOG_INFO--" + ByteTools.byteArrToHex(content)); if (content.length == 1) { int getlog_state = ByteTools.little_byteToInt(content[0]); response.setBody(getlog_state); @@ -609,6 +610,7 @@ public class ReceiverLooperThread extends Thread { public void clear() { callBackMap.clear(); if (mReceiverMsgHandle != null) mReceiverMsgHandle.removeMessages(MSG_RECEIVERDATA); + } public void removeAudioTimeOut() { diff --git a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/MsgBody.java b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/MsgBody.java index 8f872b8..3886208 100644 --- a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/MsgBody.java +++ b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/MsgBody.java @@ -65,7 +65,7 @@ public class MsgBody implements Serializable { public static final int TYPE_SWITCH_UNIT_MODE = 10241; public static final int TYPE_SWITCH_LANGUAGE = 3585; public static final int TYPE_END_DATA_SYNC = 11777; - public static final int TYPE_CANCLE_SEND_FILE = 8193; + public static final int TYPE_CANCLE_SEND_FILE = 2822; public static final int TYPE_SYNC_MP3 = 8452; public static final int TYPE_SYNC_EPO = 10244; public static final int TYPE_GET_WATCH_INFO = 769; diff --git a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/HsCustomDialSum.java b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/HsCustomDialSum.java index ddb8fa8..29d1ffe 100644 --- a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/HsCustomDialSum.java +++ b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/HsCustomDialSum.java @@ -1,6 +1,6 @@ package com.zhixun.blesdk.hssdk.entity.file; -import java.io.Serializable; + public class HsCustomDialSum extends HsDialSum { diff --git a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/HsMarketDialSum.java b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/HsMarketDialSum.java index 4870b69..cbd1e4a 100644 --- a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/HsMarketDialSum.java +++ b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/HsMarketDialSum.java @@ -1,5 +1,6 @@ package com.zhixun.blesdk.hssdk.entity.file; + public class HsMarketDialSum extends HsDialSum { private String topicName; diff --git a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/HsMp3Info.java b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/HsMp3Info.java index 08f2a00..12dc0ee 100644 --- a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/HsMp3Info.java +++ b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/HsMp3Info.java @@ -10,7 +10,7 @@ public class HsMp3Info { private int type; private String name; - private int size; + private long size; public int getType() { return type; @@ -28,11 +28,12 @@ public class HsMp3Info { this.name = name; } - public int getSize() { + public long getSize() { return size; } - public void setSize(int size) { + public void setSize(long size) { this.size = size; } + } diff --git a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/MsgBody.java b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/MsgBody.java new file mode 100644 index 0000000..3bd44a5 --- /dev/null +++ b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/MsgBody.java @@ -0,0 +1,156 @@ +package com.zhixun.blesdk.hssdk.entity.file; + +import java.io.Serializable; +import java.util.Arrays; + +public class MsgBody implements Serializable { + public static final int TYPE_SET_USERINFO = 258; + public static final int TYPE_SWITCH_DIAL = 513; + public static final int TYPE_GET_BATTY = 1793; + public static final int TYPE_SET_TIME = 514; + + public static final int TYPE_GET_SDCARD_STORAGE = 1281; + public static final int TYPE_GET_ALRAMS = 257; + public static final int TYPE_GET_HEART_RATE = 16385; + public static final int TYPE_GET_SAO2 = 16641; + public static final int TYPE_GET_STEP = 17153; + public static final int TYPE_GET_BURN_TIME = 17409; + public static final int TYPE_GET_STAND = 17665; + public static final int TYPE_GET_CALORIE = 17921; + public static final int TYPE_GET_DISTANCE = 18177; + public static final int TYPE_GET_TRIAN_RECORD = 18689; + public static final int TYPE_GET_ALLDIAL = 10753; + public static final int TYPE_FIND_WATCH = 1025; + public static final int TYPE_SET_TRAIN_TARGET = 1026; + public static final int TYPE_START_TRIAN = 2561; + public static final int TYPE_END_TRIAN = 2817; + public static final int TYPE_OPEN_TRAIN_AUTO_PUSH = 4353; + public static final int TYPE_SET_TRAIN_AUTO_FRE = 5121; + public static final int TYPE_GET_TRAINING_DATA = 3841; + public static final int TYPE_SET_TRAIN_HEART_RATE = 5377; + public static final int TYPE_PAUSE_RESUME_TRAIN = 5633; + public static final int TYPE_GET_WATCH_STATE = 6401; + public static final int TYPE_GET_SCREEN_SETTING = 6657; + public static final int TYPE_GET_SOUND_VIBRATE_SETTING = 7169; + public static final int TYPE_GET_HEART_RATE_SETTING = 7681; + public static final int TYPE_GET_O2_SETTING = 7937; + public static final int TYPE_OPEN_GESTURE_PHOTO = 8961; + public static final int TYPE_GET_DRINK_WATER = 9217; + public static final int TYPE_RESTORE_FACTORY = 9473; + public static final int TYPE_RESTART_WATCH = 9729; + public static final int TYPE_TURNOFF_WATCH = 9985; + public static final int TYPE_GET_STEP_TARGET = 11009; + public static final int TYPE_SET_STEP_TARGET = 5634; + public static final int TYPE_GET_OTHER_TARGET = 11265; + public static final int TYPE_SET_OTHER_TARGET = 5890; + public static final int TYPE_SYNC_WEATHER = 8194; + public static final int TYPE_SET_ALARMS = 8450; + public static final int TYPE_SET_CONTACTS = 2818; + public static final int TYPE_GET_GPS_POINTS = 20226; + public static final int TYPE_CHECK_DIAL = 3330; + public static final int TYPE_DELETE_DIAL = 6913; + public static final int TYPE_SET_SCREEN_SETTING = 3586; + public static final int TYPE_SET_SOUND_VIBRATE_SETTING = 3842; + public static final int TYPE_SET_HEART_RATE_SETTING = 4610; + public static final int TYPE_SET_O2_SETTING = 4866; + public static final int TYPE_SET_DRINK_WATER = 5122; + public static final int TYPE_SET_SLEEP_REMINDER = 5378; + + public static final int TYPE_GET_SLEEP_REMINDER = 10497; + public static final int TYPE_DELETE_FILES = 8706; + public static final int TYPE_GET_FILE_DIRECTORY = 8449; + public static final int TYPE_GET_SLEEP = 19201; + public static final int TYPE_UNBIND_WATCH = 4097; + public static final int TYPE_CANCEL_UNBIND = 11521; + public static final int TYPE_SWITCH_UNIT_MODE = 10241; + public static final int TYPE_SWITCH_LANGUAGE = 3585; + public static final int TYPE_END_DATA_SYNC = 11777; + public static final int TYPE_CANCLE_SEND_FILE = 8193; + public static final int TYPE_SYNC_MP3 = 8452; + public static final int TYPE_SYNC_EPO = 10244; + public static final int TYPE_GET_WATCH_INFO = 769; + public static final int TYPE_NOTIFYMSG = 259; + public static final int TYPE_FINDPHONE_MSG = 261; + public static final int TYPE_REMOVE_NOTIFYMSG = 515; + public static final int TYPE_GET_EXCLOG = 9732; + + public static final int TYPE_GET_NOW_DIALID = 5889; + + public static final int TYPE_GET_DIR = 289; + public static int TRAIN_TYPE_WALKING = 0; + public static int TRAIN_TYPE_RUN = 1; + public static int TRAIN_TYPE_RIDE = 2; + public static int TRAIN_TARGET_KM = 0; + public static int TRAIN_TARGET_CAL = 1; + public static int TRAIN_TARGET_TM = 2; + public static int TRAIN_TARGET_STEP = 4; + + + public static final int CHANNEL_E0 = 16; + public static final int CHANNEL_E1 = 1; + public static final int CHANNEL_E3 = 3; + public static final int CHANNEL_E4 = 4; + + public static final int CHANNEL_E6 = 6; + + private int channel; + private int port; + private int type; + private byte[] data; + private String filePath; + + + public int getChannel() { + return channel; + } + + public void setChannel(int channel) { + this.channel = channel; + } + + public int getPort() { + return port; + } + + public void setPort(int port) { + this.port = port; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public byte[] getData() { + if(data==null){ + data = new byte[0]; + } + return data; + } + + public void setData(byte[] data) { + this.data = data; + } + + public String getFilePath() { + return filePath; + } + + public void setFilePath(String filePath) { + this.filePath = filePath; + } + + @Override + public String toString() { + return "MsgBody{" + + "channel=" + channel + + ", port=" + port + + ", type=" + type + + ", data=" + Arrays.toString(data) + + ", filePath='" + filePath + '\'' + + '}'; + } +} diff --git a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/OTAInfo.java b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/OTAInfo.java new file mode 100644 index 0000000..44d7f3d --- /dev/null +++ b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/OTAInfo.java @@ -0,0 +1,68 @@ +package com.zhixun.blesdk.hssdk.entity.file; + +public class OTAInfo { + + /** + * type : 1 + * size : 3894464 + * major : 0 + * mid : 3 + * minor : 2 + * isForced : 1 + */ + + private int type; + private int size; + private int major; + private int mid; + private int minor; + private int isForced; + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; + } + + public int getMajor() { + return major; + } + + public void setMajor(int major) { + this.major = major; + } + + public int getMid() { + return mid; + } + + public void setMid(int mid) { + this.mid = mid; + } + + public int getMinor() { + return minor; + } + + public void setMinor(int minor) { + this.minor = minor; + } + + public int getIsForced() { + return isForced; + } + + public void setIsForced(int isForced) { + this.isForced = isForced; + } +} diff --git a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/util/BleUuidUtil.java b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/util/BleUuidUtil.java index 65f1df2..e374303 100644 --- a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/util/BleUuidUtil.java +++ b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/util/BleUuidUtil.java @@ -21,6 +21,8 @@ public class BleUuidUtil { private UUID mNotifyUUID = UUID.fromString("00002ae5-0000-1000-8000-00805f9b34fb");//客户端接收 + private UUID mFileNotifyUUID = UUID.fromString("00002ae7-0000-1000-8000-00805f9b34fb");//客户端文件接收 + private UUID mServiceUUID = UUID.fromString("000018e0-0000-1000-8000-00805f9b34fb");//客户端接收; public static BleUuidUtil getInstance() { if(sInstance == null) { @@ -38,6 +40,10 @@ public class BleUuidUtil { return mNotifyUUID; } + public UUID getFileNotifyUUID(){ + return mFileNotifyUUID; + } + public UUID getServiceUUID() { return mServiceUUID; }