WiFiFlutter icon indicating copy to clipboard operation
WiFiFlutter copied to clipboard

Cannot connect to wifi (android)

Open Alisofin opened this issue 2 years ago • 7 comments

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 ?

Alisofin avatar Jan 04 '24 21:01 Alisofin

Some update: the connection actually happens in Android but WiFiForIoTPlugin.getSSID() always returns . Please help !

Alisofin avatar Jan 20 '24 19:01 Alisofin

Make sure you have location permission and location is enabled.

daadu avatar Jan 22 '24 03:01 daadu

Yes, I've got all of these in AndroidManifest.xml: Connection is ok but WiFiForIoTPlugin.getSSID() return is wrong. What is weird is the fact, that Android doesn't ask the user for permission to access wifi when the App is running.

Alisofin avatar Jan 22 '24 07:01 Alisofin

"<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" />"``

Alisofin avatar Jan 22 '24 07:01 Alisofin

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.

Jyotishmaan-Deka avatar Feb 02 '24 12:02 Jyotishmaan-Deka

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);>

Alisofin avatar Feb 07 '24 15:02 Alisofin