Wifi Direct P2P 无法在 Android 10+ 设备上运行,无法发现设备
Posted
技术标签:
【中文标题】Wifi Direct P2P 无法在 Android 10+ 设备上运行,无法发现设备【英文标题】:Wifi Direct P2P not working on Android 10+ devices, Unable to discover devices 【发布时间】:2020-12-13 06:21:09 【问题描述】:您好,我正在开发需要使用 Wi-fi Direct 连接设备的设备。我的代码在所有设备上都有效,但对于 android 10+ 设备,发现一直失败。
我隐式和显式地请求所需的权限。
在清单中我要求这些权限。
android:name="android.permission.ACCESS_FINE_LOCATION"
android:required="true" />
<uses-permission
android:name="android.permission.ACCESS_COARSE_LOCATION"
android:required="true" />
<uses-permission
android:name="android.permission.ACCESS_WIFI_STATE"
android:required="true" />
<uses-permission
android:name="android.permission.CHANGE_WIFI_STATE"
android:required="true" />
我也明确要求这些权限。
这是我正在尝试的代码 [适用于 Android 10+ 以下的所有设备]
private void discoverWifi()
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) !=
PackageManager.PERMISSION_GRANTED)
return;
wifiP2pManager.discoverPeers(wifiChannel, new WifiP2pManager.ActionListener()
@Override
public void onSuccess()
connectionStatus.setText("Discover Start");
@Override
public void onFailure(int i)
connectionStatus.setText("Discover not Start");
);
【问题讨论】:
有人可以帮忙吗? 你在onFailure
里面得到了什么错误代码?
我在模拟器的 onFailure 中收到错误代码 2。
有人请吗??
错误代码2对应WifiP2pManager .BUSY
。我很确定,模拟器不支持 P2P。你有真实的设备来测试吗?
【参考方案1】:
在 Android 10+ 设备上,您应该打开位置,否则发现将失败
【讨论】:
以上是关于Wifi Direct P2P 无法在 Android 10+ 设备上运行,无法发现设备的主要内容,如果未能解决你的问题,请参考以下文章
Android | WIFI Direct -1 Basic knowledge
Android | WIFI Direct -1 Basic knowledge
Android | WIFI Direct -1 Basic knowledge
关于 BroadcastReceiver 类的 Android WiFi Direct (P2P) 问题
Android WiFi Direct android.net.wifi.p2p.PEERS_CHANGED 收到无休止