Я хочу попасть в класс GpsLocationProvider
на Android. Я хочу вызвать несколько методов этого класса, например setMinTime()
.
Вот мой код:
LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);
GpsLocationProvider pr = (GpsLocationProvider)lm.getProvider(LocationManager.GPS_PROVIDER);
И проблема GpsLocationProvider class is unresolved
. Я знаю, что он находится в com.android.internal.location.GpsLocationProvider
, но такой импорт также не разрешен, и import com.android.internal.*;
также не помогает разрешать `` GpsLocationProvider`.
Что это значит?
Спасибо за любые советы.
РЕДАКТИРОВАТЬ: Я знаю, что я могу изменить большинство параметров LocationProvider
через LocationManager
, как LocationManager.requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener)
, но я пытаюсь сделать небольшой взлом. Я хочу, чтобы другая программа обновляла координаты GPS чаще, чем она. Вот почему я не могу использовать LocationManager
(для этого требуется параметр слушателя) и хочу установить «глобальные» параметры gps, которые будут влиять на другое действие.
РЕДАКТИРОВАТЬ 2: Я попытался с отражениями, как предложено Рено.
LocationProvider provider = lm.getProvider(LocationManager.GPS_PROVIDER);
try {
Class classGpsProvider = Class.forName("com.android.internal.location.GpsLocationProvider");
classGpsProvider.cast(provider);
...
Но, к сожалению, вызов lm.getProvider()
возвращает DummyLocationProvider
, и он действует как тень для GpsLocationProvider
.