Как подменить местоположение, не устанавливая Allow Mock Locations, приложение в /system/priv-app
Мое приложение установлено в /system/priv-app, это системное приложение, у меня есть root-доступ. У меня есть код, но он работает только с настройкой Mock Locations. Android 7.1
Как использовать Mock Locations без включения настройки Mock Locations?
android.location.LocationManager lm = (android.location.LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
String mocLocationProvider = android.location.LocationManager.GPS_PROVIDER;
if (mocLocationProvider == null) {
Toast.makeText(context, R.string.amaco_sats_error, Toast.LENGTH_LONG).show();
(Activity) context).finishAffinity();
return;
}
lm.addTestProvider(mocLocationProvider, false, false,
false, false, true, true, true, 0, 5);
lm.setTestProviderEnabled(mocLocationProvider, true);
Location loc = new Location(mocLocationProvider);
Location mockLocation = new Location(mocLocationProvider); // a string
mockLocation.setLatitude(latitude); // double
mockLocation.setLongitude(longitude);
mockLocation.setAltitude(loc.getAltitude());
mockLocation.setTime(System.currentTimeMillis());
mockLocation.setAccuracy(accuracy);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
mockLocation.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos());
lm.setTestProviderLocation(mocLocationProvider, mockLocation);