Как подменить местоположение, не устанавливая 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);

0 ответов

Другие вопросы по тегам