Java WifiManager中的startScan()在Android P中已被弃用
如何在不使用Java WifiManager中的startScan()在Android P中已被弃用,java,android,kotlin,android-9.0-pie,Java,Android,Kotlin,Android 9.0 Pie,如何在不使用mWifimanager.startScan()的情况下从wifi获取扫描结果(例如每3秒一次) 谷歌表示: startScan() 此方法在API级别P中已被弃用。应用程序触发扫描请求的功能将在将来的版本中删除。 注意我使用的这个API级别 List results=mWifiManager.getScanResults()在不调用startScan的情况下,该列表包含wifi AP,但更新速度非常慢 更新至2019年1月12日:我认为在API级别p中,他们计划将startScan
mWifimanager.startScan()的情况下从wifi获取扫描结果(例如每3秒一次)代码>
谷歌表示:
startScan()
此方法在API级别P中已被弃用。应用程序触发扫描请求的功能将在将来的版本中删除。
注意我使用的这个API级别
List results=mWifiManager.getScanResults()
在不调用startScan
的情况下,该列表包含wifi AP,但更新速度非常慢
更新至2019年1月12日:我认为在API级别p中,他们计划将startScan()移动到另一个类(WifiScanner)中,同时还有一些关键区别
见:
如果有其他的解决办法,我也很想听听
目前,在正式文档发布之前,我可能只使用startScan()。startScan()方法在Android p中不受欢迎,802.11mc标准的新RTT协议必须与三边测量算法一起使用。
十、 AP的Y位置应为KNOW,以便准确定位,并且AP应支持802.11mc的精细时间测量。Intel®Wireless AC 9260支持802.11mc,一些AP开始支持802.11mc标准
举几个例子:
startScan()实际上在p上有相当多的bug,正如我提到的
我认为WifiScanner也不是替代品,因为它被标记为SystemApi,这意味着无法访问应用程序
希望我们很快就会听到,因为RTT仍然意味着您需要扫描支持802.11mc的AP,在AP上执行RTT测距之前,您需要使用它进行检查。谷歌现在已经记录了Android p中startScan()函数的限制:
“我们正在进一步限制应用程序可以请求的扫描次数,以提高网络性能和电池寿命
WifiManager.startScan()的用法仅限于:
-每个前台应用程序限制为每2分钟扫描4次。
-所有后台应用程序的组合限制为每30分钟扫描一次。”
资料来源:
编辑2018年8月8日:此处也添加了信息:
来自
注意:拥有android.Manifest.permission.NETWORK_设置权限的应用程序不受扫描限制
注意:这是一个系统权限,如果不将应用程序根目录并移动到“特权”位置或将其烘焙到自定义ROM中,常规应用程序无法使用它。我认为谷歌计划限制应用程序扫描wifi
此方法在API级别28中被弃用。应用程序能够
触发器扫描请求将在将来的版本中删除。
我猜其目的是让开发人员/用户至少在室内位置使用wifirtmanager[1]。
或者依赖于通常的Google Play定位服务,这在某些用例中是一种选择,但肯定不是全部。它针对一般用例进行了优化。没有用例是平均用例
不幸的是,WifiRttManager计算位置的方式要求wifi接入点具有802.11mc。但是,您不需要连接到这些点。
今天几乎有0台路由器采用了这一标准。[2] [3] [4]
通过3个接入点,您可以获得接近1-2米精度的位置
但谁知道他们是否也会对该功能设置限制。
我不高兴这个功能被用户和开发人员拿走了——它所需要的只是一个权限
因此,在802.11mc普及之前,未来几年室内定位似乎将进入一个黑暗时代。
也许一个解决办法是让您连接的设备并ping它们
[1]
[2]
补充阅读
[3]
[4] 你的目标是26+?这是从谷歌有意转移到Android的逻辑延续,将Android转变为类似iOS的封闭平台,其中某些功能,如后台跟踪,保留给平台供应商自己的服务(这些服务记录在案地使用它们侵犯隐私)@oseiskar,对此报告发表评论以支持WiFi扫描,以便他们将其删除而不提供任何解决方法?我实际上是在为商业应用开发应用程序,他们在封闭的环境中依靠频繁的wifi扫描。android设备将不断连接到电源,因此这不是一个问题。该应用甚至不会出现在Play store中。我认为他们应该为这类应用提供一个解决方案。也许是系统许可或类似的东西?那么你应该为这些设备定制android操作系统。。。i、 e.是实现这一目标的唯一途径。评论或投票支持WiFi扫描是的,现在他们清楚地解释说。。。但可能会有任何更新,以帮助开发人员使用更频繁的扫描。。。我们希望如此对此报告发表评论或投票支持WiFi扫描谷歌表示:具有保护级别签名、特权或签名或系统的权限仅授予系统应用程序。如果应用程序是常规非系统应用程序,它将永远无法使用这些权限。
对此报告进行评论或向上投票以支持WiFi扫描@EAKTEAM至少您可以在侧装应用程序中使用它。对此报告进行评论或向上投票以支持WiFi扫描评论或向上投票以支持WiFi扫描评论或向上投票以支持此报告希望这将在最新的Android Q(测试版)中改变,我们都在等待这一改变!限制开发人员使用此工具是疯狂的。。。我们所能做的就是等待。