Android 11 及更高版本上 WifiManager 的 startScan() 弃用方法的替代方法?

问题描述 投票:0回答:0

我发现社区中有几个开放的线程提到了这个问题,但没有解决方案。我看到 Android 文档最初将

startScan()
作为一种商定的方法呈现,喜欢这里。一切都很好,但我们走得更远,我们可以看到这个方法已经被弃用了很长时间,所以他们还没有提供官方的替代方法。我理解缺点以及为什么他们想将其标记为已弃用,但我仍然认为应该以某种方式提供此选项。

经过一些研究,我发现这个单一的 API 方法应该适用于最近的 Android 版本:

public void registerScanResultsCallback (Executor executor, 
            WifiManager.ScanResultsCallback callback)

上面片段的参考就在这里
非官方来源我推断上面的内容应该替换

startScan()
,所以不需要再调用它了,这似乎是一种解决方法。但是,该方法不会隐式触发扫描,我不相信这应该发生(从它的名字来看)。有没有人必须处理这个替换并找到解决方案?


P.S: NEARBY_WIFI_DEVICES(适用于 Android 13+)、ACCESS_FINE_LOCATION 和 ACCESS_WIFI_STATE 应该是所需的权限。如果使用
startScan()
或打开 Internet 设置 屏幕(获取网络后)调用扫描,则会触发已注册的回调。

android android-wifi wifimanager
© www.soinside.com 2019 - 2024. All rights reserved.