requestCellInfoUpdate() 的正确用法是什么?

mik*_*e47 7 android android-networking android-10.0

利用onSignalStrengthsChangedgetAllCellInfo()和相关方法,我的应用程序监视细胞信号数据并实时显示结果。我的代码在针对 API 28 及更低版本时工作得非常好,可以在数据发生变化时自动刷新数据。以 API 29 为目标会导致部分Android 10 设备无法更新数据,但并非全部。

我发现TelephonyManager.requestCellInfoUpdate()已添加到 API 29,可能(?)需要它来解决此问题。但是,除了Android Reference 上的简洁定义之外,我无法找到有关此方法的任何信息。是否需要使用该方法来刷新cell信息?是否有任何代码示例或进一步的解释?

如果该方法不相关,API 29 中是否存在可能导致此行为的其他更改?ACCESS_FINE_LOCATION已确认获得批准,这似乎是唯一的其他相关 API 更改。

aug*_*aug 2

阅读文档,文档中提到了这一点getAllCellInfo()

面向 Android Q 或更高版本的应用将不再通过调用此 API 来触发缓存的 CellInfo 刷新。相反,这些应用程序将收到最新的缓存结果,这些结果可能不是最新的。面向 Android Q 或更高版本且希望请求更新的 CellInfo 的应用应调用 requestCellInfoUpdate();但是,在所有情况下,更新都会受到速率限制并且无法保证。要确定 CellInfo 数据的新近度,调用者应检查 CellInfo#getTimeStamp()。

因此,如果您的目标是 Android Q 或更高版本,那么您应该选择requestCellInfoUpdate()