The permissions are given in both AndroidManifest.xml and runtime, eg.
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission
android:name="android.permission.NEARBY_WIFI_DEVICES"
android:usesPermissionFlags="neverForLocation" />
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_WIFI_STATE)
!= PackageManager.PERMISSION_GRANTED) {
// Permission is not granted
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_WIFI_STATE},
1);//should this number be in the same sequence of .xml?
}
......
However, on the network peer change callback, the size of the device list is always 0:
WifiP2pManager.PeerListListener peerListListener = new WifiP2pManager.PeerListListener() {
@Override
public void onPeersAvailable(WifiP2pDeviceList wifiP2pDeviceList) {
boolean bConnected = false;
boolean bHostAvailable = false;
Log.i(TAG, "onPeersAvailable "+wifiP2pDeviceList.getDeviceList().size());
......
On this same device, the discovery always return onFailure 0 (0 normally is successful?):
btnDiscover.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
wifiP2pHandler.manager.discoverPeers(wifiP2pHandler.channel, new WifiP2pManager.ActionListener() { //ensure that the list of peers is up to date
@Override
public void onSuccess() {
DisplayStatus("Discovery started", COLOR_STATUS.NORMAL);
//btnDiscover.setEnabled(false);
}
@Override
public void onFailure(int i) {
DisplayStatus("Got WiFi? Discovery failed: " +i, COLOR_STATUS.NOK);
}
});
}
});
This device is Huawei P30 pro (Android 10, API 29). The same app runs well for Huawei Mate 20 pro (Android 10, API 29) and Samsung A13 (Android 13, API 33). Compiler: Android Studio Electric Eel | 2022.1.1 Patch 1.
Anyone has advice on this? Thanks.