Android WifiManager在我的Xperia Z3+;但在我的Galaxy S4上的效果与预期一样

Android WifiManager在我的Xperia Z3+;但在我的Galaxy S4上的效果与预期一样,android,android-broadcast,android-broadcastreceiver,Android,Android Broadcast,Android Broadcastreceiver,MyWifiBroadcastReceiver侦听更新的WIFI状态。当我按下我的main活动上的按钮时,WifiManager将执行WIFI扫描,这将触发我的Wifibroadcastereceiver中的onReceive方法。 当我从Intent获取操作时,它是正确的,它返回WifiManager.SCAN\u RESULTS\u AVAILABLE\u action。当我收到action时,我调用WifiManager.getScanResults(),它返回ScanResult对象的列

My
WifiBroadcastReceiver
侦听更新的WIFI状态。当我按下我的
main活动
上的按钮时,
WifiManager
将执行WIFI扫描,这将触发我的Wifibroadcastereceiver中的
onReceive
方法。
当我从
Intent
获取
操作时,它是正确的,它返回
WifiManager.SCAN\u RESULTS\u AVAILABLE\u action
。当我收到
action
时,我调用
WifiManager.getScanResults()
,它返回
ScanResult
对象的
列表

在S4上,结果与预期一样,是可用WIFI网络的列表。然而,在Z3+上,虽然它返回一个
列表
,但列表是空的

这可能是什么原因造成的

S4正在运行Android 5.0.1。

Z3+正在运行Android 6.0.1。

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

请看下面的答案:


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

请看下面的答案:


不幸的是,安卓手机的设计者并非都以“相同的方式”做“相同的事情”。价格较低的手机,以及来自不同制造商的手机,并不总是像开发者口袋里的超级双工手机那样工作。是的,我担心这就是我将要得到的答案。但这似乎是一个相当低的水平上的差异,我希望这种类型的东西是标准的,像扫描Wifi网络一样无处不在。显然,非常仔细地查看任何类型的错误日志,但是,“是的,有时这些差异是愚蠢的。”好吧,看起来这就是问题所在:那么我建议你添加这个作为“答案”。不幸的是,安卓手机的设计师并不是都以“相同的方式”做“相同的事情”。便宜的手机,以及来自不同制造商的手机,不要总是像开发者口袋里的超级双工手机那样工作。是的,我担心这就是我将要得到的答案。但这似乎是一个相当低的水平上的差异,我希望这种类型的东西是标准的,像扫描Wifi网络一样无处不在。显然,非常仔细地查看任何类型的错误日志,但是,“是的,有时这些差异是愚蠢的。”好吧,看起来这就是问题所在:那么我建议你把它作为“答案”加上