Если вы все еще ищете ответ на этот вопрос, проблема в том, что loc.getCid () возвращает целое число, тогда как text.setText требует String. Просто измените последнюю строку на:
text.setText(Integer.toString(loc.getCid()));
Я только что попробовал это, и он отлично работает.
Еще один момент, хотя я не уверен в этом (и мне было бы любопытно услышать опыт других): вы, похоже, предполагаете, что вы используете это на телефоне GSM. Что если tm.getCellLocation()
вернет CdmaCellLocation
? Поскольку для класса CdmaCellLocation
нет метода get.Cid()
, я думаю, что безопаснее заключить ваш код в оператор if
, например: if(tm.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM)
. Вы также можете получить отдельный результат для if(tm.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA)
, используя один из доступных методов .