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

标签 android android-networking android-10.0

利用 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/

相关文章:

Android Q Kotlin - API 29 : check if image exists

Android Q,以编程方式连接到不同的 WiFi AP 以上网

android - Material Components 主题的描述?

android - 如何重新加载 future 数据的屏幕

Android对话框昏暗动画

android - 调用 BindProcessToNetwork(network) 之后。 APP从不通过移动数据连接互联网

php - Android 使用 Volley 库将图片上传到服务器

安卓 : Stopping a Bonjour service left running after the parent process quit abrubtly

android - 下载图像在 Android 应用程序中被损坏