デバイスがWiFiネットワークに接続されたときに反応する必要があるAndroid用のアプリケーションを作成しています。現在、BroadcastReceiverを使用してandroid.net.ConnectivityManager.CONNECTIVITY_ACTIONを監視するように実装しようとしています。これは正しいか、またはより適切な方法はありますか?
2 に答える
@ジェイス、受け取るには登録する必要がありますWifiManager.NETWORK_STATE_CHANGED_ACTION
。インテントにはNetworkInfo
余分なものがあります。その状態を見つけるためにそれを調べてください。状態がの場合NetworkInfo.State.CONNECTED
、ネットワークに接続しています。
これを実現するためのサンプルコードについては、こちらをご覧ください。
WifiManager.WIFI_STATE_CHANGED_ACTIONを見てください
Wi-Fiが有効、無効、有効、無効、または不明であることを示すブロードキャストインテントアクション。1つ余分に、この状態をintとして提供します。別のエクストラは、利用可能な場合、以前の状態を提供します。
およびWifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION
サプリカントへの接続が確立された(そしてWi-Fi操作を実行できるようになった)か、サプリカントへの接続が失われたことを示すブロードキャストインテントアクション。もう1つは、接続状態をブール値として提供します。trueはCONNECTEDを意味します。
放送から読むか、次のようなものを入手したらチェックしてください。
WifiManager wifi=(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
int state=wifi.getWifiState();
これで状態を確認できます。
- WIFI_STATE_DISABLED
- WIFI_STATE_DISABLING
- WIFI_STATE_ENABLED <-これにより、データを送受信できます
- WIFI_STATE_ENABLING
- WIFI_STATE_UNKNOWN