2013-02-26 8 views

Odpowiedz

5

Spróbuj dodać odbiornik i słuchaj zmian w sieci, gdy połączenie Wi-Fi zaczniesz swoją aktywność. Coś takiego rozwiązania

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); 
       } 

    } 
} 

i dodać do manifestować

<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

Mam błąd, gdy wyłączam wifi . Wyjątek java.lang.RuntimeException: nie można utworzyć wystąpienia odbiornika com.example.text.ConnectivityReceiver: java.lang.ClassNotFoundException: com.example.text.ConnectivityReceiver w programie loader dalvik.system.PathClassLoader [/data/app/com.example. test-2.apk] –

+0

> kiedy moja aplikacja w staniePauza() (oznacza ekran główny urządzenia). kiedy urządzenie łączy się z wifi, automatycznie otworzy moją aplikację. –

+0

@ prozhyga-> kiedy moja aplikacja na staniePauza() (oznacza ekran główny urządzenia). kiedy urządzenie łączy się z wifi, automatycznie otworzy moją aplikację. –

0

Co mogę sobie wyobrazić, jest nadpisywanie metody onPause() jak ten:

@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(); 
    } 
} 

Ale trzeba też zrozumieć sposób obsłużyć rzeczywiste zdarzenie onPause.

+0

@ goody-> when my application onPause() Stan (oznacza ekran główny urządzenia). kiedy urządzenie łączy się z wifi, automatycznie otworzy moją aplikację. –

0

Być może można to zrobić za pomocą aplikacji Tasker ze Sklepu Play (nie za darmo). Możesz też utworzyć usługę (http://developer.android.com/guide/components/services.html), która będzie zawierała kod określony w innych odpowiedziach, a następnie uruchomi aplikację (aktywność), gdy będzie dostępna sieć Wi-Fi.

Powiązane problemy