<やりたいこと>
アクセスポイントへの接続が確立した際のイベントで処理を実行したい。できればBroadcastReceiverでやりたい。
<困っていること>
下記コードで実装しているが、接続確立したイベント(NetworkInfo.State.CONNECTED)を二度受け取ってしまう。
結果レシーバー内の「★印」の箇所が二度走る。
これはAndroidの仕様であるのか、BroadcastReceiverに指定しているイベントが違うのか知りたい。
接続が確立した際にはCONNECEDは一度だけ渡ってくるイメージなのですが、想定の動作をしてくれません。
android.net.wifi.STATE_CHANGE ではない正しいイベントをご存知の方、コードの間違いに気づかれた方はどうかご助力願えないでしょうか。
xml
1// AndroidManifest 2 3<receiver android:name=".StateChanageReceiver"> 4 <intent-filter> 5 <action android:name="android.net.wifi.STATE_CHANGE" /> 6 </intent-filter> 7</receiver> 8
java
1// レシーバー 2 3public class StateChanageReceiver extends BroadcastReceiver { 4 @Override 5 public void onReceive(Context context, Intent intent) { 6 NetworkInfo networkInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); 7 if(networkInfo != null){ 8 if (networkInfo.getState() == NetworkInfo.State.CONNECTED) { 9 // ★ 10 } 11 } 12 }
回答1件
あなたの回答
tips
プレビュー