web-dev-qa-db-fra.com

Connecter une Android à un wifi sans accès à Internet

J'ai une application expo qui fonctionne comme une application complémentaire à un appareil IoT.

Pour connecter l'appareil au wifi, l'application doit se connecter au wifi de l'appareil et lui envoyer un appel réseau contenant les informations wifi.

Jusqu'à Android 9, cela a bien fonctionné. Mais comme j'ai commencé à tester sur des appareils plus récents, j'ai découvert que cela ne fonctionnait pas aussi bien qu'avant, comme maintenant si vous vous connectez à un wifi sans accès à Internet , vous obtenez un message disant "Ce réseau n'a pas d'accès à Internet. Restez connecté?". L'utilisateur doit maintenant sélectionner idéalement "Ne plus demander" ET sélectionner "Oui" avant que l'appel réseau ne soit envoyé à l'appareil.

Cela suce un peu l'UX comme si l'utilisateur manquait cette popup, ou la rejetait, la requête réseau ne passerait pas comme Android bloque tous les transferts de données jusqu'à ce que vous sélectionniez spécifiquement "Oui" dans la popup Si l'utilisateur manque le popup, il peut toujours voir une notification avec "Ce wifi n'a pas d'accès Internet" pour accéder au popup.

Donc, la question est: existe-t-il un moyen de contourner cela? Idéalement, quelque chose comme une autorisation que je peux demander à l'utilisateur à l'avance? Je n'ai rien trouvé jusqu'à présent à l'exception de ce problème Force Android pour utiliser le réseau Wifi sans Internet c'est similaire, mais dans mon cas, le téléphone ne fonctionne pas revenir aux données mobiles, il ne transfère simplement aucune donnée entre le wifi et l'application. Fonctionne bien avec iOS cependant: /

7
Matija Martic

Pas une solution, mais nous rencontrons exactement le même problème. Jusqu'à Android 9, notre application a pu se connecter à un réseau WIFI sans Internet et transmettre le trafic. À partir de 9, nous sommes en mesure de nous connecter au réseau wifi sans Internet, mais tout le trafic est envoyé via les données mobiles.

Lorsque nous connectons manuellement un appareil Android 9 à un réseau WIFI sans Internet, une notification contextuelle s'affiche: Internet peut ne pas être disponible. Il y a deux choix - 1) Basculer vers les données mobiles ou 2) Un autre réseau. Si nous sélectionnons l'une ou l'autre option, nous sommes déconnectés du réseau wifi sans Internet. Si nous ne faisons rien (ne sélectionnez aucune option) et que la fenêtre contextuelle disparaît après 10 secondes, nous restons connectés au réseau wifi sans Internet.

Lorsque nous nous connectons depuis notre application, aucune fenêtre contextuelle n'est présentée à l'utilisateur et le comportement est comme si nous avions sélectionné l'option "Passer aux données mobiles".

Ce serait bien si l'équipe Android Android ne supposait pas qu'Internet était nécessaire ou souhaité dans toutes les situations. Parfois, nous voulons nous connecter à des réseaux sans accès Internet et rester connectés.

Une solution potentielle consiste à désactiver les données mobiles. Bien que cela fonctionne, il ne semble pas que cela soit autorisé grammaticalement. Dans notre cas, cela nécessiterait que les utilisateurs activent/désactivent les données mobiles dans les paramètres plusieurs fois par jour. À l'heure actuelle, notre application récupère les données de divers réseaux wifi non Internet, puis se déconnecte des réseaux wifi pour envoyer ces données sur Internet à un serveur cloud.

Des idées sur la façon de résoudre dans la dernière version d'Android?

2
chaxz