getAircraftLocation()-获取一个";“南”;(不是数字)用于Android中的Lat/Lng

getAircraftLocation()-获取一个";“南”;(不是数字)用于Android中的Lat/Lng,android,location,dji-sdk,Android,Location,Dji Sdk,各位下午好 在成功地与无人机建立连接(在MainActivity.java)后(获取其型号名称并启用打开按钮),我打开一个新的活动(LocationActivity.java),我必须在Toast消息中显示飞机(型号:M210)的位置 我在信息中得到的是:Lat/Lng=NaN/NaN private FlightController mFlightController; private double mDroneLocationLat; private double mDroneLocatio

各位下午好

在成功地与无人机建立连接(在MainActivity.java)后(获取其型号名称并启用打开按钮),我打开一个新的活动(LocationActivity.java),我必须在Toast消息中显示飞机(型号:M210)的位置

我在信息中得到的是:Lat/Lng=NaN/NaN

private FlightController mFlightController;
private double mDroneLocationLat;
private double mDroneLocationLng;
onCreate()方法中,我创建了一个广播接收器:

    IntentFilter filter = new IntentFilter();
    filter.addAction(FPVDemoApplication.FLAG_CONNECTION_CHANGE);
    registerReceiver(mReceiver, filter);
FPVDemoApplication是一个java文件,DJI构造函数在其中编写了一些代码并创建了一个广播发送器。你可以在Github上找到它

然后:

protected BroadcastReceiver mReceiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        onProductConnectionChange();
    }
};

private void onProductConnectionChange()
{
    initFlightController();
}
initFlightController()方法中,我使用以下代码获取飞机位置:getFlightController()getAircraftLocation()

BaseProduct product = FPVDemoApplication.getProductInstance();

if (product != null && product.isConnected()) {
    if (product instanceof Aircraft) {
        mFlightController = ((Aircraft) product).getFlightController();
    }
}

        // Getting Aircraft
        // ================
        if (mFlightController != null) {
            mFlightController.setStateCallback(
                    new FlightControllerState.Callback() {
                        @Override
                        public void onUpdate(FlightControllerState
                                                     djiFlightControllerCurrentState) {
                            mDroneLocationLat = djiFlightControllerCurrentState.getAircraftLocation().getLatitude();
                            mDroneLocationLng = djiFlightControllerCurrentState.getAircraftLocation().getLongitude();
                        }
                    }
            );
        }
-

问题是:

  • 我忘了用一些方法来确定飞机的位置了吗
  • Manifest.xml或其他java文件中访问飞机位置信息需要哪些权限

  • 由于我的飞机在一个办公室里,我是否必须到外面去找到它的位置

  • 以下是结构树:


    我找到了解决办法:这太愚蠢了>!我忘了把GPS天线装在无人机上,然后到外面去获得更好的信号电平。getAircraftLocation()是正确的,但是如果使用此方法(djiLightControllerCurrentState.getGPSSignalLevel())获得级别0,则无法获得无人机位置