我正在为 Android 开发一个应用程序,它允许您模拟您的位置,而无需在开发人员设置中启用它。
我尝试了一些方法来做到这一点,但没有任何成功。
如果启用设置,我的实际代码有效,但如果禁用它则不起作用(即使应用程序是系统应用程序)
我的代码:
if (mLocationManager.getProvider(GPS_PROVIDER_NAME) != null) {
mLocationManager.removeTestProvider(GPS_PROVIDER_NAME);
}
mLocationManager.addTestProvider(
GPS_PROVIDER_NAME,
"requiresNetwork" == "",
"requiresSatellite" == "",
"requiresCell" == "",
"hasMonetaryCost" == "",
"supportsAltitude" == "",
"supportsSpeed" == "",
"supportsBearing" == "",
android.location.Criteria.POWER_LOW,
android.location.Criteria.ACCURACY_FINE
);
currentLocation = new Location(GPS_PROVIDER_NAME);
currentLocation.setLatitude(mockLocationLatLng[0]);
currentLocation.setLongitude(mockLocationLatLng[1]);
currentLocation.setTime(System.currentTimeMillis());
currentLocation.setAltitude(1);
currentLocation.setSpeed(200);
currentLocation.setAccuracy(500);
mLocationManager.setTestProviderLocation(GPS_PROVIDER_NAME, currentLocation);
mLocationManager.setTestProviderEnabled(GPS_PROVIDER_NAME, true);
mLocationManager.setTestProviderStatus(GPS_PROVIDER_NAME, LocationProvider.AVAILABLE, null, System.currentTimeMillis());
我做错什么了吗?遗憾的是,当您拥有系统/应用程序权限时,我不知道该怎么做。
你对如何解决这个问题有什么建议吗?我不需要一个完全可以工作的程序代码,只需要一种可以完成的方式。
谢谢您的帮助!