使用下面的代码,我可以检索 dji 无人机遥控器的序列号。但是,我无法获得电池电量。无论如何我可以恢复电池电量吗?请指教。
序列号代码(可以):
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 遥控器的有效引用,您提供的代码看起来是正确的。
但是,要获取遥控器的电池电量,您需要调用getRemoteControllerBatteryInfo方法而不是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 之间的整数形式返回遥控器的电池电量,表示剩余电量的百分比。
调用此方法前,请确保您的应用程序具有访问DJI SDK功能的必要权限,并且遥控器已连接到飞行器并已打开。