如何获得大疆遥控器的电池水平在android应用程序(使用android studio - java构建)?



使用下面的代码,我能够检索大疆无人机遥控器的序列号。但是,我无法获得电池电量。有办法取回电池电量吗?请建议。

序列号代码(这是好的):

public void getSerialNumber(CommonCallbacks.CompletionCallbackWith<String> callback)
{
if(baseProduct != null && baseProduct.isConnected()) {
if (baseProduct instanceof Aircraft) {
((Aircraft) baseProduct).getFlightController().getSerialNumber(callback);
}
else callback.onFailure(null);
}
else callback.onFailure(null);
}

剩余电池的代码(不工作):

public void getBatteryLevel(CommonCallbacks.CompletionCallbackWith<Integer> callback)
{
if(baseProduct != null && baseProduct.isConnected()) {
if (baseProduct instanceof Aircraft) {
((Aircraft) baseProduct).getBattery().getChargeRemaining(callback);
}
else callback.onFailure(null);
}
else callback.onFailure(null);
}

您提供的代码看起来是正确的,假设baseProduct是对DJI远程控制器的有效引用。

然而,要获取远程控制器的电池电量,您需要调用getremotecontrolerbatteryinfo方法,而不是getBatteryLevel方法,如下所示:

public void getBatteryLevel(CommonCallbacks.CompletionCallbackWith<Integer> callback) {
if (baseProduct != null && baseProduct.isConnected()) {
if (baseProduct instanceof Aircraft) {
((Aircraft) baseProduct).getRemoteController().getBatteryInfo().getChargeRemainingInPercent(callback);
} else {
callback.onFailure(null);
}
} else {
callback.onFailure(null);
}
}

这将返回遥控器的电池电量,作为0到100之间的整数,表示剩余电量的百分比。

在调用此方法之前,请确保您的应用程序具有访问大疆SDK功能的必要权限,并且远程控制器已连接到飞机并已打开。

最新更新