Попробуйте использовать PhoneStateListener следующим образом:
Сначала создайте прослушиватель.
public PhoneStateListener phoneStateListener = new PhoneStateListener() {
@Override
public void onCellLocationChanged (CellLocation location) {
StringBuffer str = new StringBuffer();
// GSM
if (location instanceof GsmCellLocation) {
GsmCellLocation loc = (GsmCellLocation) location;
str.append("gsm ");
str.append(loc.getCid());
str.append(" ");
str.append(loc.getLac());
Log.d(TAG, str.toString());
}
}
};
Затем зарегистрируйте прослушиватель onCreate () следующим образом:
telephonyManager = (TelephonyManager) getBaseContext().getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_CELL_LOCATION);
Как указано в документации , LISTEN_CELL_LOCATION требует, чтобы вы добавили следующее разрешение:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>