2013-02-26 4 views
5

Wie kann ich meine Anwendung öffnen, wenn ein Benutzer eine Zone betritt, die Wi-Fi hat? Ist das möglich? Angenommen, meine Anwendung ist onPause() state (bedeutet Startseite meines Geräts). jetzt wenn Gerät mit WLAN verbunden ist. Es wird automatisch meine Anwendung öffnen.App öffnen bei Verbindung mit WLAN

Antwort

5

Versuchen Sie Broadcast-Empfänger hinzufügen und Netzwerkänderungen zu hören, wenn Wi-Fi-Verbindung Ihre Aktivität starten. So etwas wie diese Lösung

public class ConnectivityReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 

       ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
       NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
       NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 
       if (((null != wifi)&&(wifi.isAvailable())) || ((null != mobile)&&(mobile.isAvailable()))){ 
        Intent uplIntent = new Intent(context, YourActivity.class); 
        uplIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        context.startActivity(uplIntent); 
       } 

    } 
} 

Und fügen sich manifestieren

<receiver android:name=".receiver.ConnectivityReceiver"> 
     <intent-filter> 
      <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 
     </intent-filter> 
    </receiver> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
+0

Ich habe den Fehler, wenn ich das WLAN deaktivieren . java.lang.RuntimeException: Empfänger kann nicht instanziiert werden com.example.text.ConnectivityReceiver: java.lang.ClassNotFoundException: com.example.text.ConnectivityReceiver im Loader dalvik.system.PathClassLoader [/data/app/com.example. test-2.apk] –

+0

> wenn meine Anwendung onPause() state (bedeutet Startseite des Geräts). Wenn das Gerät mit Wifi verbunden wird, wird automatisch meine Anwendung geöffnet. –

+0

@ prozhyga-> wenn meine Anwendung onPause() Zustand (bedeutet Startseite des Geräts). Wenn das Gerät mit Wifi verbunden wird, wird automatisch meine Anwendung geöffnet. –

0

Was kann ich mir vorstellen, eine Überschreibung der onPause() Methode ist wie folgt:

@Override 
public void onPause() { 
    String conn_context = Context.WIFI_SERVICE; 
    final WifiManager wifi = (WifiManager) getSystemService(conn_context); 
    if (wifi.isWifiEnabled()) 
    { 
     super.onResume(); 
    } 
    else 
    { 
     super.onPause(); 
    } 
} 

Aber Sie müssen auch die Abbildung einen Weg um das echte onPause-Ereignis zu behandeln.

+0

@ goody-> wenn meine Anwendung onPause() state (bedeutet Startbildschirm des Geräts). Wenn das Gerät mit Wifi verbunden wird, wird automatisch meine Anwendung geöffnet. –

Verwandte Themen