Cannot connect to wifi (android)
I cannot access a wifi spot on Android using this code: await WiFiForIoTPlugin.disconnect(); status = await WiFiForIoTPlugin.connect(_robotServerSsid, password: _robotServerPassword, joinOnce: (Platform.isIOS) ? false : true, security: NetworkSecurity.WPA, withInternet: false, timeoutInSeconds: 45); await WiFiForIoTPlugin.forceWifiUsage(true);
var ssid = await WiFiForIoTPlugin.getSSID();
print("ssid = $ssid");
if (status == true && ssid == _robotServerSsid) {
print("Robot - connect - Wifi is connected");
_isConnected = true;
} else {
_isConnected = false;
print("Robot - connect - Failed Wifi connection");
return false;
}
the Android manifest contains:
It doesn't trigger any Android system authorisation user dialog and the connection fails. Any other permission I should set ? Could you please help ? What am I missing ?
Some update: the connection actually happens in Android but WiFiForIoTPlugin.getSSID() always returns
Make sure you have location permission and location is enabled.
Yes, I've got all of these in AndroidManifest.xml:
"<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<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_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.NEARBY_WIFI_DEVICES" />"``
I am able to connect to an available network but it does not have internet access. In the system WiFi tray it says "Connected through Bt_App ,low quality" . How to get the internet access. Also how to connect in case of API level 29 and below. I know that for iOS its not possible as Apple has many restrictions.
This works for me. It connects to a wifi access point with no internet access: < bool status; await WiFiForIoTPlugin.disconnect();
status = await WiFiForIoTPlugin.connect(_robotServerSsid,
password: _robotServerPassword,
joinOnce: (Platform.isIOS) ? false : true,
security: NetworkSecurity.WPA,
withInternet: false,
timeoutInSeconds: 60);
await WiFiForIoTPlugin.forceWifiUsage(true);>