From: xiewei <892331662@qq.com> Date: Fri, 18 Oct 2024 02:21:31 +0000 (+0800) Subject: 241018:文件传输单独拎出来 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=b1482bbf095bf036606ccb9457e9f038541291d1;p=mirrors%2Fhs-sdk.git 241018:文件传输单独拎出来 --- diff --git a/app/src/main/java/com/zhixun/blesdk/app/DialTestActivity.java b/app/src/main/java/com/zhixun/blesdk/app/DialTestActivity.java index c436a20..0e03e7f 100644 --- a/app/src/main/java/com/zhixun/blesdk/app/DialTestActivity.java +++ b/app/src/main/java/com/zhixun/blesdk/app/DialTestActivity.java @@ -3,26 +3,18 @@ package com.zhixun.blesdk.app; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; -import androidx.documentfile.provider.DocumentFile; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import android.content.ActivityNotFoundException; -import android.content.ContentUris; -import android.content.Context; import android.content.Intent; -import android.database.Cursor; import android.net.Uri; import android.os.Bundle; -import android.os.Environment; -import android.provider.DocumentsContract; -import android.provider.MediaStore; import android.text.TextUtils; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; -import android.widget.ListView; import android.widget.Toast; import com.zhixun.blesdk.app.adapter.MsgAdapter; @@ -108,7 +100,7 @@ public class DialTestActivity extends AppCompatActivity { Log.d(TAG,"name-"+name); HsMarketDialSum dialSum = new HsMarketDialSum(); - dialSum.setTopicName(removeDigits(name)); + dialSum.setTopicName("maomao.lzma"); dialSum.setCount(1); dialSum.setUid(Integer.parseInt(id)); oldDialPro = -1; diff --git a/app/src/main/java/com/zhixun/blesdk/app/utils/FuncationChosePopupWindow.java b/app/src/main/java/com/zhixun/blesdk/app/utils/FuncationChosePopupWindow.java index 9c57c05..30c3eb8 100644 --- a/app/src/main/java/com/zhixun/blesdk/app/utils/FuncationChosePopupWindow.java +++ b/app/src/main/java/com/zhixun/blesdk/app/utils/FuncationChosePopupWindow.java @@ -29,7 +29,6 @@ import com.zhixun.blesdk.hssdk.entity.HsO2Value; import com.zhixun.blesdk.hssdk.entity.HsPhoneNumber; import com.zhixun.blesdk.hssdk.entity.HsSleepItem; import com.zhixun.blesdk.hssdk.entity.HsSleepSetting; -import com.zhixun.blesdk.hssdk.entity.OTAInfo; import com.zhixun.blesdk.hssdk.entity.E3MsgBody; import com.zhixun.blesdk.hssdk.entity.E4MsgBody; import com.zhixun.blesdk.hssdk.entity.HsAlarmItem; @@ -50,8 +49,9 @@ import com.zhixun.blesdk.hssdk.entity.HsValueItem; import com.zhixun.blesdk.hssdk.entity.HsWaterRemind; 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.HsMarketDialSum; +import com.zhixun.blesdk.hssdk.entity.file.HsMp3Info; +import com.zhixun.blesdk.hssdk.entity.file.OTAInfo; import java.io.File; import java.text.SimpleDateFormat; @@ -232,6 +232,7 @@ public class FuncationChosePopupWindow extends PopupWindow { data.add("55、设置睡眠"); data.add("56、获取睡眠设置"); data.add("57:多文件传输(表盘)"); + data.add("58:mp3测试"); } private void funcationChose() { @@ -503,19 +504,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(3); break; case 44: msgBody = new E3MsgBody(MsgBody.TYPE_GET_SAO2); @@ -646,6 +635,29 @@ public class FuncationChosePopupWindow extends PopupWindow { files.add(path1); files.add(path2); break; + case 58: + String path = "/sdcard/Android/data/com.zhixun.blesdk.app/files/hs_sdk/alarm123.mp3"; + File file = new File(path); + HsMp3Info mp3Info = new HsMp3Info(); + mp3Info.setName("alarm123.mp3"); + mp3Info.setSize(file.length()); + mp3Info.setType(2); + HsAgentSdk.getInstance().getAPI().sendMusicFile(path, mp3Info, new ISendFileListener() { + @Override + public void onProgressChange(int progress) { + if(onResultListener!=null){ + onResultListener.OnResult("ma3发送进度: "+progress); + } + } + + @Override + public void onStateChange(int state, String msg) { + if(onResultListener!=null){ + onResultListener.OnResult("ma3发送状态: "+state+":"+msg); + } + } + }); + break; } if(msgBody!=null||msgBody4!=null){ diff --git a/hssdk/build.gradle b/hssdk/build.gradle index 5badc95..74c3e9a 100644 --- a/hssdk/build.gradle +++ b/hssdk/build.gradle @@ -45,9 +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.6-241016.jar') implementation files('libs\\HS-FILE-SDK-v0.1-241015.jar') -// implementation files('libs\\Poly-SDK-v1.5-240809.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 index bbf218f..c3ea0be 100644 Binary files a/hssdk/libs/HS-FILE-SDK-v0.1-241015.jar and b/hssdk/libs/HS-FILE-SDK-v0.1-241015.jar differ diff --git a/hssdk/libs/Poly-SDK-v1.5-240809.jar b/hssdk/libs/Poly-SDK-v1.5-240809.jar deleted file mode 100644 index 6c799e2..0000000 Binary files a/hssdk/libs/Poly-SDK-v1.5-240809.jar and /dev/null 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..00c372d 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.file.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..7dae4fd 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.file.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 853e338..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 @@ -610,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/OTAInfo.java b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/OTAInfo.java similarity index 95% rename from hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/OTAInfo.java rename to hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/OTAInfo.java index ac77123..44d7f3d 100644 --- a/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/OTAInfo.java +++ b/hssdk/src/main/java/com/zhixun/blesdk/hssdk/entity/file/OTAInfo.java @@ -1,4 +1,4 @@ -package com.zhixun.blesdk.hssdk.entity; +package com.zhixun.blesdk.hssdk.entity.file; public class OTAInfo { 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; }