type de connexion de réglage d'applications Android
-
19-09-2019 - |
Question
J'écris une application pour Android. Mon problème est que je veux forcer la connexion GPRS et ne pas utiliser le wi-fi. J'ai une solution comme ci-dessous, mais cela provoque le crash de l'application au démarrage.
ConnectivityManager CM =
(ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
CM.setNetworkPreference(ConnectivityManager.TYPE_MOBILE);
J'ai également ajouté les lignes réglages ci-dessous dans le fichier manifeste.
uses-permission android:name="android.permission.WRITE_SETTINGS"
uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"
uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"
uses-permission android:name="android.permission.CHANGE_CONFIGURATION"
uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"
Est-ce que quelqu'un sait le problème, ou une réponse à définir le type de connexion?
La solution
Mon problème est que je veux forcer la connexion GPRS et ne pas utiliser wi fi.
Ce n'est pas possible dans Android aujourd'hui, désolé.
Autres conseils
Vous êtes en mesure de vérifier si le Wi-Fi est activé, et dans Android 2.0 et au-dessus, vous pouvez activer ou désactiver le Wi-Fi par programme. Dans Android 1.x, le mieux que vous pouvez faire est de dire à l'utilisateur qu'il doit le désactiver et les pointer vers la page Paramètres.
/**
* Checks if Wi-Fi is on.
*
* @return true, if Wi-fi is on.
*/
public static boolean isWiFiOn()
{
WifiManager wifi = (WifiManager) MyAccountApplication.getContext().getSystemService(Context.WIFI_SERVICE);
if (wifi == null)
return false;
List<WifiConfiguration> config = wifi.getConfiguredNetworks();
if (config != null)
for (int i = 0; i < config.size(); i++)
{
if (config.get(i).status == WifiConfiguration.Status.CURRENT)
{
return true;
}
}
return false;
}
public static void setWiFi(Context context, boolean enabled)
{
WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
if (wifi != null)
wifi.setWifiEnabled(enabled);
}