Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java WifiManager中的startScan()在Android P中已被弃用_Java_Android_Kotlin_Android 9.0 Pie - Fatal编程技术网

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(测试版)中改变,我们都在等待这一改变!限制开发人员使用此工具是疯狂的。。。我们所能做的就是等待。