Получение объекта Android GpsLocationProvider - PullRequest
1 голос
/ 17 октября 2011

Я хочу попасть в класс 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.

1 Ответ

1 голос
/ 17 октября 2011

Вы, вероятно, не можете сделать это без отражения

Вы должны использовать импорт android.location.*

...