2017-12-19 36 views
1

AndroidアプリケーションでWiFi接続の状態が変更されたことを通知します。 私は、主に意図の定義につながるいくつかの提案(ここではSO)を見つけました。 私はこのアプローチを使用しています:android.net.wifi.STATE_CHANGEインテント処理(アクティビティ)

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_controller); 

    IntentFilter intentFilter = new IntentFilter(); 
    intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); 
    registerReceiver(broadcastReceiver, intentFilter); 

    checkWiFi(); 
} 

public BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     if (intent != null) 
      checkWiFi(); 
    } 
}; 

動作しますが、私は私のAndroidManifest.xmlでこれを入れた場合、私はつまりマニフェスト中心のアプローチを使用することができる場合、私は思ったんだけど:

<activity 
     android:name=".MainActivity" 
     android:screenOrientation="landscape"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     <intent-filter> 
      <action android:name="android.net.wifi.STATE_CHANGE" /> 
     </intent-filter> 
    </activity> 

私に通知しなければなりません着信意図の右? アクティビティでこれをどのように処理できますか?

あなたがクラスに MyBroadcastReceiver extends BroadcastReceiver

を作成する必要があります敬具、マイク・

答えて

0

と言い換える

<receiver android:name=".MyBroadcastReceiver"> 
    <intent-filter> 
     <action android:name="android.net.wifi.STATE_CHANGE" /> 
    </intent-filter> 
</receiver> 
+0

マニフェスト次の私は '自体Activity'によって意図を扱うことができません。あなたが提案しているアプローチを試しましたが、受信者からイベントへの通知方法を理解していません( 'LocalBroadcastManager'と' Intents'を使用する以外は少し冗長です)。 – weirdgyn

関連する問題