|
|
@@ -22,17 +22,13 @@ import androidx.appcompat.app.AppCompatActivity;
|
|
|
|
|
|
import com.paul.drone.activity.LoginActivity;
|
|
|
import com.paul.drone.connection.DeviceConnectionManager;
|
|
|
-import com.paul.drone.data.RegisterRequest;
|
|
|
import com.paul.drone.manager.DJISDKManager;
|
|
|
import com.paul.drone.network.SessionManager;
|
|
|
import com.paul.drone.repository.NetworkRepository;
|
|
|
import com.paul.drone.service.MqttService;
|
|
|
import com.paul.drone.util.DeviceInfoManager;
|
|
|
-import com.paul.drone.util.mqtt.MqttManager;
|
|
|
|
|
|
-import dji.sdk.keyvalue.key.FlightControllerKey;
|
|
|
import dji.sdk.keyvalue.value.common.LocationCoordinate2D;
|
|
|
-import dji.v5.manager.KeyManager;
|
|
|
import dji.v5.manager.SDKManager;
|
|
|
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
|
|
import io.reactivex.rxjava3.disposables.CompositeDisposable;
|
|
|
@@ -70,6 +66,8 @@ public class MainActivity extends AppCompatActivity implements DeviceConnectionM
|
|
|
private DeviceConnectionManager deviceConnectionManager;
|
|
|
private Handler uiHandler;
|
|
|
|
|
|
+ private NetworkRepository networkRepository;
|
|
|
+
|
|
|
// 状态变量
|
|
|
private boolean isSDKInitialized = false;
|
|
|
private boolean isDroneConnected = false;
|
|
|
@@ -217,6 +215,7 @@ public class MainActivity extends AppCompatActivity implements DeviceConnectionM
|
|
|
private void initData() {
|
|
|
sessionManager = new SessionManager(this);
|
|
|
uiHandler = new Handler(Looper.getMainLooper());
|
|
|
+ networkRepository = NetworkRepository.getInstance(); // 假设 NetworkRepository 也是一个单例
|
|
|
// 检查 SDK 初始化状态
|
|
|
isSDKInitialized = DJISDKManager.getInstance().isSDKRegistered();
|
|
|
Log.i(TAG, "MainActivity 初始化完成");
|
|
|
@@ -363,6 +362,43 @@ public class MainActivity extends AppCompatActivity implements DeviceConnectionM
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void onDroneTakeoff() {
|
|
|
+ // 在这里处理无人机起飞后的逻辑
|
|
|
+ Log.d(TAG, "无人机起飞了!更新UI或执行任务。");
|
|
|
+ //获取设备序列号
|
|
|
+ String flySerialNumber = DeviceInfoManager.getInstance().getFlySerialNumber();
|
|
|
+ // 使用 NetworkRepository 发送验证码
|
|
|
+ disposables.add(networkRepository.openUav(flySerialNumber,0)
|
|
|
+ .subscribeOn(Schedulers.io())
|
|
|
+ .observeOn(AndroidSchedulers.mainThread())
|
|
|
+ .subscribe(
|
|
|
+ response -> {
|
|
|
+ },
|
|
|
+ throwable -> {
|
|
|
+
|
|
|
+ }
|
|
|
+ ));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onDroneLanding() {
|
|
|
+ // 在这里处理无人机降落后的逻辑
|
|
|
+ Log.d(TAG, "无人机降落了!");
|
|
|
+ //获取设备序列号
|
|
|
+ String flySerialNumber = DeviceInfoManager.getInstance().getFlySerialNumber();
|
|
|
+ disposables.add(networkRepository.openUav(flySerialNumber,1)
|
|
|
+ .subscribeOn(Schedulers.io())
|
|
|
+ .observeOn(AndroidSchedulers.mainThread())
|
|
|
+ .subscribe(
|
|
|
+ response -> {
|
|
|
+ },
|
|
|
+ throwable -> {
|
|
|
+
|
|
|
+ }
|
|
|
+ ));
|
|
|
+ }
|
|
|
+
|
|
|
private void registerDevice(){
|
|
|
String flySerialNumber = DeviceInfoManager.getInstance().getFlySerialNumber();
|
|
|
String productOrCameraType = DeviceInfoManager.getInstance().getModelByDroneTypeEnum(0);
|
|
|
@@ -572,9 +608,9 @@ public class MainActivity extends AppCompatActivity implements DeviceConnectionM
|
|
|
super.onPause();
|
|
|
Log.d(TAG, "onPause: 应用进入后台");
|
|
|
// 应用退到后台时,取消注册设备连接状态回调以减少资源消耗
|
|
|
- if (deviceConnectionManager != null) {
|
|
|
- deviceConnectionManager.unregisterCallback(TAG);
|
|
|
- }
|
|
|
+// if (deviceConnectionManager != null) {
|
|
|
+// deviceConnectionManager.unregisterCallback(TAG);
|
|
|
+// }
|
|
|
}
|
|
|
|
|
|
@Override
|