使用下面的代码,我能够检索大疆无人机遥控器的序列号。但是,我无法获得电池电量。有办法取回电池电量吗?请建议。
序列号代码(这是好的):
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功能的必要权限,并且远程控制器已连接到飞机并已打开。