利用 onSignalStrengthsChanged
, getAllCellInfo()
和相关方法,我的应用程序监控细胞信号数据并实时显示结果。我的代码在以 API 28 及更低版本为目标时运行良好,在数据更改时自动刷新数据。以 API 29 为目标会导致一些 Android 10 设备无法更新数据——但不是全部。
我发现了TelephonyManager.requestCellInfoUpdate()
已添加到 API 29,可能需要(?)来解决此问题。但是,除了 the concise definition on the Android Reference 之外,我无法找到有关此方法的任何信息。 .是否需要使用此方法刷新单元格信息?是否有任何代码示例或进一步的解释?
如果该方法不相关,那么 API 29 中是否还有可能导致此行为的更改? ACCESS_FINE_LOCATION
已确认被授予,这似乎是唯一的其他相关 API 更改。
最佳答案
我注意到针对 Android 10(API 级别 29)的相同行为。我发现的唯一解决方法是定期轮询 API 并查找更改。
下面的示例代码:
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
tm.requestCellInfoUpdate(minThreadExecutor, new TelephonyManager.CellInfoCallback() {
@Override
public void onCellInfo(@NonNull List<CellInfo> list) {
//Extract needed data
}
});
}
}, 1000, 1000 );
关于android - requestCellInfoUpdate() 的正确用法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61075598/