Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot connect to wifi (android) #364

Open
Alisofin opened this issue Jan 4, 2024 · 7 comments
Open

Cannot connect to wifi (android) #364

Alisofin opened this issue Jan 4, 2024 · 7 comments

Comments

@Alisofin
Copy link

Alisofin commented Jan 4, 2024

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
Copy link
Author

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

@daadu
Copy link
Member

daadu commented Jan 22, 2024

Make sure you have location permission and location is enabled.

@Alisofin
Copy link
Author

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
Copy link
Author

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

@Jyotishmaan-Deka
Copy link

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.

@Alisofin
Copy link
Author

Alisofin commented Feb 7, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants
@daadu @Jyotishmaan-Deka @Alisofin and others