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?

Était-ce utile?

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);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top