2013-04-01 4 views
0

Je veux ouvrir mon application lorsque mon signal wifi devient inférieur à 20% Comment puis-je mettre en œuvre ce ?? ci-dessous est le code pour la puissance du signal wifiIntention sur le changement de force du signal wifi

WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); 
    final WifiInfo connectionInfo = wifiManager.getConnectionInfo(); 
     int rssi = connectionInfo.getRssi(); 
     int level = WifiManager.calculateSignalLevel(rssi, 10); 
     int percentage = (int) ((level/10.0)*100); 

Répondre

0

Une solution consiste à écrire un petit service qui vérifie périodiquement la puissance du signal, et ouvre votre application une fois que le niveau de 20% est franchi. Méfiez-vous de l'utilisation excessive de la batterie avec quelque chose comme ça.

+0

Can u pls aider avec le code ?? – shantanu

+0

Il y a un bon exemple de code pour les Services dans ApiDemos/src/com/exemple/android/apis/app/LocalService.java et ApiDemos/src/com/exemple/android/apis/app/AlarmService.java ainsi que des descriptions détaillées de Services et quelques extraits de code sur http://developer.android.com/guide/components/services.html. Je suggère de commencer là et ensuite écrire avec des questions supplémentaires que vous allez – levis501

+0

merci .. levis501 – shantanu

1

Maintenant, quand je cours ce rien ne se passe

MyService étend son service

public class {

@Override 
public IBinder onBind(Intent intent) { 
    // TODO Auto-generated method stub 
    return null; 
} 
//@SuppressWarnings("null") 
public int onStartCommand(Intent intent, int flags, int startId){ 

//Context context = null; 
Toast.makeText(this, "service started", Toast.LENGTH_LONG).show(); 

startservice(); 


return Service.START_STICKY; 
} 
public void onDestroy(){ 

    super.onDestroy(); 
    Toast.makeText(this, "service stopped function", Toast.LENGTH_LONG).show(); 
} 
private void startservice() { 
    // TODO Auto-generated method stub 
    //Toast.makeText(this, "service started function", Toast.LENGTH_LONG).show(); 

       try 
       { 
        WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE); 
        final WifiInfo connectionInfo = wifiManager.getConnectionInfo(); 
        int rssi = connectionInfo.getRssi(); 
        int level = WifiManager.calculateSignalLevel(rssi, 10); 
        int percentage = (int) ((level/10.0)*100); 
        Toast.makeText(this, percentage, Toast.LENGTH_SHORT).show(); 
        if(percentage<20){ 
         Toast.makeText(this, "logout starting", Toast.LENGTH_LONG).show(); 
         Intent uplIntent = new Intent(this,com.cyberoam.logout.class); 
         uplIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
         this.startActivity(uplIntent); 
        } 

       } 
       catch (Exception e) 
       { 
        return ; 
       } 

     return ; 
} 
} 
+0

La vérification de pourcentage devra être effectuée périodiquement, pas une seule fois. En outre, vous pouvez commencer une nouvelle question. – levis501

+0

J'ai fait une boucle while pour vérifier le pourcentage et j'ai fait un pourcentage <90 pour vérifier mon code bt la nouvelle activité n'a pas démarré. – shantanu

Questions connexes