【发布时间】:2015-03-26 13:55:13
【问题描述】:
我正在使用 TelephonyManager 获取 getNeighboringCellInfo()。我想在 listview 中列出相邻单元格的详细信息。我成功获取了相邻单元格,但无法在列表视图中显示 请帮助我来解决这个问题。
listedSignals = (ListView)findViewById(R.id.listSignals);
private void getNeighbors(TelephonyManager telephonyManager) throws InterruptedException {
List<NeighboringCellInfo> neighboringCellInfos;
neighboringCellInfos = telephonyManager.getNeighboringCellInfo();
neighboringCellBlockingQueue = new LinkedBlockingQueue<>(100);
for (int i = 0;i < neighboringCellInfos.size();i++) {
NeighboringCellInfo info = neighboringCellBlockingQueue.poll(1, TimeUnit.SECONDS);
ArrayList<NeighboringCellInfo> cellInfoList = new ArrayList<>(neighboringCellBlockingQueue.size() + 1);
while (info != null) {
cellInfoList.add(info);
info = neighboringCellBlockingQueue.poll(1, TimeUnit.SECONDS);
}
neighboringCellInfos = cellInfoList;
}
}
neighboringCellInfos 有所有相邻单元格的详细信息。所以请在listedSignalslistview 中使用neighboringCellInfos 告诉我。
【问题讨论】:
-
首先你应该将
ArrayList<NeighboringCellInfo> cellInfoList = new ArrayList<>(neighboringCellBlockingQueue.size() + 1);移出for循环,因为每次在for循环中都会再次创建它,将之前的附加值再次重置为空。
标签: java android telephony telephonymanager