首页 > 解决方案 > API 26 (Oreo) 中的 Wifi Direct 对等点发现

问题描述

我正在按照Wifi Direct Demo开发一个 Wifi Direct APP ,它可以在 API 低于 26 的设备之间工作。在 API 26 中它不能正常工作,因为它没有检测到 APP 中的任何对等点,peers.size( ) = 返回 0(但通过设置 ->Wifi..wifi 直接检测到,其他对等方)。

如果 API 为 26 的设备尝试连接它不起作用,但如果 API 低于 API 26 的设备尝试连接到 API 26 设备,则连接有效(尽管在 API 26 设备中检测到任何对等点)。

为什么在 APP 中未检测到对等点,但在设置中出现(检测在 APP 中对 26 以下的 API 有效)?

API 26 有新的限制吗?

我得到以下日志:

06-20 00:16:29.625 1157-1157/? E/wificond: NL80211_CMD_TRIGGER_SCAN failed: Device or resource busy
06-20 00:16:29.625 1481-2605/? E/WificondScannerImpl: Failed to start scan, freqs=null
06-20 00:16:29.628 1481-1481/? D/WifiProfileMgrReceiver: handleEvent : android.net.wifi.SCAN_RESULTS
06-20 00:16:29.631 1481-1481/? D/WifiProfileUtil: [getMccMnc] Add Slot 0 SubId 1
06-20 00:16:29.637 1481-18547/? D/WifiPermissionsUtil: Denied: no location permission
06-20 00:16:29.742 1206-2847/? I/LOWI-8.5.0.3.a: [LOWI-Scan] lowi_close_record:Scan completed in 2765827ms and Recieved 0 APs scan results
06-20 00:16:29.743 1206-1279/? I/LOWI-8.5.0.3.a: [LOWIUtils] responseToOutPostcard - TO: GTP-FDAL, FROM:   LOWI-SERVER, RESP:  LOWI_ASYNC_DISCOVERY_SCAN_RESULTS
06-20 00:16:29.743 1157-1157/? E/wificond: Failed to get interface index from scan result notification
06-20 00:16:29.744 1208-1445/? W/XTCC-6.1.2.10: [LOWIUtils] to_eScanTypeResponse - default case
06-20 00:16:29.744 1208-1445/? E/XTCC-6.1.2.10: [FDAL_Manager] handleFreeWiFiScanResult: failed: 11
06-20 00:16:30.011 1206-2847/? I/LOWI-8.5.0.3.a: [LOWI-Scan] lowi_close_record:Scan completed in 2766096ms and Recieved 0 APs scan results
06-20 00:16:30.012 1206-1279/? I/LOWI-8.5.0.3.a: [LOWIUtils] responseToOutPostcard - TO: GTP-FDAL, FROM:   LOWI-SERVER, RESP:  LOWI_ASYNC_DISCOVERY_SCAN_RESULTS
06-20 00:16:30.013 1208-1445/? W/XTCC-6.1.2.10: [LOWIUtils] to_eScanTypeResponse - default case
06-20 00:16:30.013 1208-1445/? E/XTCC-6.1.2.10: [FDAL_Manager] handleFreeWiFiScanResult: failed: 11
06-20 00:16:30.483 1206-2847/? I/LOWI-8.5.0.3.a: [LOWI-Scan] lowi_close_record:Scan completed in 2766568ms and Recieved 0 APs scan results
06-20 00:16:30.484 1206-1279/? I/LOWI-8.5.0.3.a: [LOWIUtils] responseToOutPostcard - TO: GTP-FDAL, FROM:   LOWI-SERVER, RESP:  LOWI_ASYNC_DISCOVERY_SCAN_RESULTS
06-20 00:16:30.485 1208-1445/? W/XTCC-6.1.2.10: [LOWIUtils] to_eScanTypeResponse - default case
06-20 00:16:30.486 1208-1445/? E/XTCC-6.1.2.10: [FDAL_Manager] handleFreeWiFiScanResult: failed: 11
06-20 00:16:30.849 1206-2847/? I/LOWI-8.5.0.3.a: [LOWI-Scan] lowi_close_record:Scan completed in 2766934ms and Recieved 0 APs scan results
06-20 00:16:30.850 1206-1279/? I/LOWI-8.5.0.3.a: [LOWIUtils] responseToOutPostcard - TO: GTP-FDAL, FROM:   LOWI-SERVER, RESP:  LOWI_ASYNC_DISCOVERY_SCAN_RESULTS
06-20 00:16:30.852 1208-1445/? W/XTCC-6.1.2.10: [LOWIUtils] to_eScanTypeResponse - default case

我添加了位置权限(ACCESS_FINE_LOCATION),但我不断收到此错误:

Failed to get interface index from scan result notification

标签: androidwifipeer

解决方案


最后我解决了:设置->常规->应用程序和通知->应用程序信息->选择您的APP->权限->启用您的位置。


推荐阅读