如何在 android 应用程序(使用 android studio - java 构建)中获取 dji 遥控器的电池电量?

问题描述 投票:0回答:1

使用下面的代码,我可以检索 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);
    }
java android android-studio dji-sdk batterylevel
1个回答
0
投票

假设 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功能的必要权限,并且遥控器已连接到飞行器并已打开。

© www.soinside.com 2019 - 2024. All rights reserved.