Я использовал следующий код,
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
List<NeighboringCellInfo> neighboringCellInfoList = telephonyManager.getNeighboringCellInfo();
if (neighboringCellInfoList == null || neighboringCellInfoList.size() == 0)
{
/*Toast.makeText(this, "List Empty", Toast.LENGTH_SHORT).show();*/
Log.e(TAG, "List Empty");
} else
{
TowerAdapter towerAdapter = new TowerAdapter(MainActivity.this, neighboringCellInfoList);
recyclerView.setAdapter(towerAdapter);
}
}
И мой держатель привязки в адаптере
@Override
public void onBindViewHolder(@NonNull TowerViewHolder towerViewHolder, int i) {
String cid = String.valueOf(cellInfoList.get(i).getCid());
String signal = String.valueOf(cellInfoList.get(i).getRssi());
towerViewHolder.cid.setText(cid);
towerViewHolder.signal.setText(signal);
}
Но всегда я получаю «-1» в качестве значения CID.
в чем может быть проблема? вывод скриншота сюда
Обратите внимание, что getNeighboringCellInfo() устарел в API 23.
Может быть, это просто правильный результат, а не проблема.
Для NeighboringCellInfo метод getCid() возвращает значение UNKNOWN_CID, если тип сети — UMTS, CDMA или Неизвестно.
Значение UNKNOWN_CID равно -1.
Привет, @partha. Добро пожаловать в StackOverflow. Пожалуйста, просмотрите свой код, нигде в вашем коде нет
neighborlist.getCid(). Обнаружение этих ошибок и их исправление помогут вам быстрее найти решения. Не заставляйте потенциальных помощников догадываться, что вы имеете в виду.