2010-02-09 7 views
2

J'écris une application pour android. Mon problème est que je veux forcer la connexion en GPRS et ne pas utiliser wi fi. J'ai une solution comme ci-dessous, mais cela provoque le crash de l'application au démarrage. J'ai également ajouté les lignes de réglage ci-dessous dans le fichier manifeste.Type de connexion du paramètre d'application Android

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 connaît le problème, ou une réponse pour définir le type de connexion?

+1

J'utiliser 'LogCat', vous pouvez utiliser la classe' log' de laisser des instructions de débogage à l'intérieur de votre code où vous pensez que le problème réside peut-être, et à l'intérieur de la fenêtre 'LogCat' vous pouvez voir une trace de ce qui provoque le crash. Pour ce faire, exécutez l'application et si elle se bloque, regardez dans la fenêtre de la console ce qui a causé le crash et le poster ici. –

+0

Le problème pour l'émulateur concernait l'autorisation write_secure_settings et je l'ai ajouté au manifeste. Maintenant, il dit que l'application renvoie securityException. J'ai trouvé que pour modifier les paramètres sécurisés, le signe de l'application doit avoir été le même que le téléphone lui-même, mais je ne suis pas sûr de cette information. Donc, je suppose qu'il peut vraiment être impossible de le faire dans Android. – miette

Répondre

1

Mon problème est que je veux forcer la connexion GPRS et ne pas utiliser le wi-fi .

Ce n'est pas possible dans Android aujourd'hui, désolé.

1

Vous pouvez vérifier si le Wi-Fi est activé, et dans Android 2.0 et au-delà, vous pouvez activer ou désactiver le Wi-Fi par programmation. Dans Android 1.x, le mieux que vous puissiez faire est de dire à l'utilisateur qu'il doit le désactiver et le 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); 
} 
Questions connexes