2013-02-26 5 views
5

ユーザがwi-fiを持つゾーンに入ると、アプリケーションを開くにはどうすればよいですか?これは可能ですか?私のアプリケーションがonPause()状態(マイデバイスのホーム画面を意味する)であるとします。今デバイスが無線LANに接続されています。私のアプリケーションを自動的に開きます。wifiと接続したときの公開アプリ

答えて

5

Wi-Fiが接続されているときに、ブロードキャスト受信機を追加してネットワークの変更を聞いてみてください。この解決策のようなもの

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

    } 
} 

そして、私が想像することができますどのような

<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

無線LANを無効にしているときにエラーが発生しました java.lang.RuntimeException:受信者をインスタンス化できませんcom.example.text.ConnectivityReceiver:java.lang.ClassNotFoundException:com.example.text.ConnectivityReceiver in loader dalvik.system.PathClassLoader [/data/app/com.example]。 test-2.apk] –

+0

>私のアプリケーションのonPause()状態(デバイスのホーム画面を意味します)。デバイスが無線LANに接続すると、自動的にアプリケーションが開きます。 –

+0

@ prozhyga->私のアプリケーションonPause()状態(デバイスのホーム画面を意味します)。デバイスが無線LANに接続すると、自動的にアプリケーションが開きます。 –

0

をマニフェストに追加しますが、このようなonPause()メソッドの上書きです:

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

しかし、あなたはまた、方法を理解する必要があります実際のonPauseイベントを処理します。

+0

@ goody->私のアプリケーションonPauseときには、ブート許可を追加することを忘れてはいけない ()状態(デバイスのホーム画面を意味します)。デバイスが無線LANに接続すると、自動的にアプリケーションが開きます。 –

0

PlayストアのTaskerアプリで動作する可能性があります(無料ではありません)。または、他の回答に記載されているコードを持つサービス(http://developer.android.com/guide/components/services.html)を作成し、wifiが利用可能なときにアプリ(アクティビティ)を起動することができます。

関連する問題