ホームページ >Java >&#&チュートリアル >Android でのインターネット接続の変更に対処するにはどうすればよいですか?
Android でのインターネット接続の変更の処理
質問は、インターネット接続の変更を監視できるブロードキャスト レシーバーの必要性を中心にしています。既存のコードは接続の変更のみを検出します。
これに対処するための代替アプローチは次のとおりです。
<code class="java">public class NetworkUtil { public static final int TYPE_WIFI = 1; public static final int TYPE_MOBILE = 2; public static final int TYPE_NOT_CONNECTED = 0; public static int getConnectivityStatus(Context context) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); if (activeNetwork != null) { if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) return TYPE_WIFI; if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) return TYPE_MOBILE; } return TYPE_NOT_CONNECTED; } }</code>
このメソッドは、デバイスが WiFi またはモバイル データに接続されているかどうかを判断します。
<code class="java">public class NetworkChangeReceiver extends BroadcastReceiver { @Override public void onReceive(final Context context, final Intent intent) { int status = NetworkUtil.getConnectivityStatus(context); if ("android.net.conn.CONNECTIVITY_CHANGE".equals(intent.getAction()) { if (status == NetworkUtil.TYPE_NOT_CONNECTED) { // Handle loss of internet connectivity } else { // Handle restoration of internet connectivity } } } }</code>
この BroadcastReceiver は接続状態の変化を監視し、現在のステータスに基づいてアクションをトリガーします。適切な権限を忘れずに含めて、AndroidManifest.xml に受信者を登録してください:
<code class="xml"><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <receiver android:name="NetworkChangeReceiver" android:label="NetworkChangeReceiver" > <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> <action android:name="android.net.wifi.WIFI_STATE_CHANGED" /> </intent-filter> </receiver></code>
以上がAndroid でのインターネット接続の変更に対処するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。