我们有外部蓝牙设备,可以为Android设备提供不同类型的数据。其中它还提供GPS NMEA字符串。 GPS NMEA数据应该用于更新android系统GPS模块。其他数据将在我们的应用程序中解析。
如何实现这一目标?
ATM:我解析来自外部设备的所有数据,但android GPS模块不接收NMEA字符串。 GPS必须由android系统GPS模块处理才能更新导航软件。该软件仅使用Android GPS数据,它不支持从其他应用程序中抽取数据的功能。
答案 0 :(得分:0)
CM版本< = 10支持GPS源选择,您可以从中选择配对设备并将其用作GPS源。
有一个xposed模块适用于android> = 4.2 https://plus.google.com/communities/104930572010612794860
如果你没有卫星信息的问题,你也可以使用PlayStore的蓝牙Gps(需要模拟位置) https://play.google.com/store/apps/details?id=googoo.android.btgps&hl=it
答案 1 :(得分:0)
解决方案:我使用了模拟位置。目前无法避免GPS NMEA字符串解析。
<强>代码:强>
String mocLocationProvider = LocationManager.GPS_PROVIDER;
mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
mLocationManager.addTestProvider(mocLocationProvider, false, false, false, false, true, true, false, Criteria.POWER_LOW, Criteria.ACCURACY_HIGH);
mLocationManager.setTestProviderEnabled(mocLocationProvider, true);
mLocationManager.setTestProviderStatus(mocLocationProvider, LocationProvider.AVAILABLE, null, System.currentTimeMillis());
//update location
Location mCurrentLocation = new Location(mocLocationProvider);
mCurrentLocation.setLatitude(mGPSCurrLat);
mCurrentLocation.setLongitude(mGPSCurrLon);
mCurrentLocation.setAccuracy(1);
mCurrentLocation.setTime(mGPSCurrTimeUTC); //long getTime() from UTC string
mCurrentLocation.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos());
mLocationManager.setTestProviderLocation(mocLocationProvider, mCurrentLocation);
注意:强> 启用&#34;允许模拟位置&#34;在android设置中!