GsmCellLocation дает нулевое значение ..? - PullRequest
0 голосов
/ 03 января 2012

Я хочу отобразить местоположение ячейки, идентификатор и код города.Однако, когда я запускаю приложение, оно дает мне ошибку во время выполнения.С точки зрения отладки я вижу, что объект GsmCellLocation выдает нулевое значение.(cellLocation == null если я отлаживаю)

Вот мой пример кода:

TelephonyManager teleplonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
GsmCellLocation cellLocation = (GsmCellLocation)teleplonyManager.getCellLocation();

int cid = cellLocation.getCid();
int lac = cellLocation.getLac();

textGSMCellLocation.setText(cellLocation.toString());
textCID.setText("gsm cell id : "+String.valueOf(cid));
textLAC.setText("gsm location area code : "+String.valueOf(lac));

это мой menifest.xml

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

1 Ответ

1 голос
/ 03 января 2012

In В Docs указано:

Возвращает текущее местоположение устройства.Возвращает ноль, если текущее местоположение недоступно.

Повторим: возвращается нулевое значение, поскольку текущее местоположение недоступно.

Возможно, поставщики местоположения отключены или просто не могут найтиместоположение.

В любом случае, если вам нужно местоположение, вам лучше использовать LocationManager, поскольку оно предназначено для обновления местоположения и имеет гораздо более полезные методы, чем TelephonyManager.getCellLocation();

...