【发布时间】:2015-11-16 01:33:03
【问题描述】:
昨天我的 Nexus 5 收到了从 Android MNC 到版本 6.0 - Marshmallow 的更新。
从那时起,扫描设备中可用网络的操作停止接收列表,在这种情况下,结果列表的大小为 0,即使 Wifi 系统设置中列出了 10 多个 Wifi 网络。
这个代码是通常的:注册SCAN_RESULTS_AVAILABLE_ACTION并在接收器中等待事件,像这样:
// Register the Receiver in some part os fragment...
getActivity().registerReceiver(wifiListener, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
WifiManager wifiManager = (WifiManager) getActivity().getSystemService(Context.WIFI_SERVICE);
wifiManager.startScan();
// Inside the receiver:
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
List<ScanResult> results = wifiManager.getScanResults();
// the result.size() is 0 after update to Android v6.0, same code working in older devices.
我在changes of the API 主题中搜索了关于此的内容,但我没有看到此功能的任何重大更改。
有人注意到了吗? API 中有什么新东西还是只是一个孤立的案例?
【问题讨论】:
-
您的 N5 是否启用了允许 Wi-Fi 扫描选项?消灭嫌疑人。
-
在
Wifi > Advanced我只看到Network Notification和Keep Wifi...选项,出现在这两个之间的Scanning选项似乎在这个版本中没有了。 -
当它第一次到达该代码以授予位置服务权限时,您是否看到弹出一个对话框?我打赌 M,你应该会看到这样的对话框。见developer.android.com/reference/android/app/…, int)
-
是的!在另一个应用程序中,我曾经调用此对话框来强制激活位置设置,通常当我使用地图时,当然,当我将位置用于地图和类似的东西时,这是相同的用例,即使没有一张地图。该对话框不是自动的,它需要从播放服务响应中调用,这让我完全忘记了它。请用这个特别的建议回答这个问题。
-
@debihiga 你看到这个“重复”的日期了吗?我在 6 个月前发布了这个问题。
标签: android android-wifi android-6.0-marshmallow