WifiManager returns 在我的 Xperia Z3+ 上是一个空列表,但在我的 Galaxy S4 上可以正常工作

WifiManager returns an empty list on my Xperia Z3+ but works as expected on my Galaxy S4

我的 WifiBroadcastReceiver 监听更新的 WIFI 状态。当我按下 MainActivity 上的按钮时,WifiManager 执行 WIFI 扫描,这会触发我的 WifiBroadcastReceiver 中的 onReceive 方法。
当我从 Intent 得到 action 时,它是正确的,它 returns WifiManager.SCAN_RESULTS_AVAILABLE_ACTION。当我收到 action 时,我调用 WifiManager.getScanResults(),其中 return 是 ListScanResult 对象。

在 S4 上,结果如预期,可用 WIFI 网络列表。但是在 Z3+ 上,虽然它 return a List<ScanResult> 列表是空的。

这可能是什么原因造成的?

S4 是 运行 Android 5.0.1.
Z3+ 是 运行 Android 6.0.1.

从 Android 开始,6.0 权限行为已移至运行时。这意味着我们需要以不同的方式处理权限。

在此处查看此答案: