getAircraftLocation() - 获取Android中Lat / Lng的“NaN”(非数字)

风流不在谈锋胜,袖手无言味最长。这篇文章主要讲述getAircraftLocation() - 获取Android中Lat / Lng的“NaN”(非数字)相关的知识,希望能为你提供帮助。
大家下午好,
在成功与无人机建立连接(在MainActivity.java中)(获取其模型名称并启用打开按钮)之后,我打开一个新的Activity(LocationActivity.java),我必须在那里显示飞机(型号:M210) Toast消息中的位置。
我在消息中得到的内容:Lat / Lng = NaN / NaN

private FlightController mFlightController; private double mDroneLocationLat; private double mDroneLocationLng;

在onCreate()方法中,我创建了一个Broadcast接收器:
IntentFilter filter = new IntentFilter(); filter.addAction(FPVDemoApplication.FLAG_CONNECTION_CHANGE); registerReceiver(mReceiver, filter);

FPVDemoApplication是一个java文件,其中DJI构造函数编写了一些代码+创建了一个广播发送者。你可以在Github上找到它。
【getAircraftLocation() - 获取Android中Lat / Lng的“NaN”(非数字)】然后 :
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(); } } ); }

-
问题是:
  1. 我是否忘记使用某些方法来获得飞机位置?
  2. 我需要哪些权限才能访问Manifest.xml或其他java文件中有关Aircraft位置的信息?
  3. 由于我的飞机在办公室里,我是否必须到外面去找它的位置(根据this thread)?
这是结构树:
getAircraftLocation() - 获取Android中Lat / Lng的“NaN”(非数字)

文章图片

答案我找到了解决方案:这是非常愚蠢的。< !我忘了在无人机上安装GPS天线,然后到外面去获得更好的信号电平。 getAircraftLocation()是正确的,但是如果你使用这个方法得到LEVEL_0(djiFlightControllerCurrentState.getGPSSignalLevel())你将无法获得无人机位置

    推荐阅读