4

我正在为 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()); 

我做错什么了吗?遗憾的是,当您拥有系统/应用程序权限时,我不知道该怎么做。

你对如何解决这个问题有什么建议吗?我不需要一个完全可以工作的程序代码,只需要一种可以完成的方式。

谢谢您的帮助!

4

0 回答 0