ホームページ > Java > &#&チュートリアル > Android で信頼性の高いインターネット接続変更リスナーを作成するにはどうすればよいですか?

Android で信頼性の高いインターネット接続変更リスナーを作成するにはどうすればよいですか?

DDD
リリース: 2024-10-29 10:12:02
オリジナル
1040 人が閲覧しました

How can I create a reliable Internet connectivity change listener in Android?

Android のインターネット接続変更リスナー

接続変更用のデフォルトのブロードキャスト レシーバーは、ネットワークの可用性を監視しますが、必ずしもインターネット接続を監視するわけではありません。この制限に対処するために、より包括的なアプローチを検討してみましょう。

インターネット接続監視

次のユーティリティ クラスを利用して、現在のインターネット接続ステータスを確認します。

<code class="java">public class NetworkUtil {
  public static int getConnectivityStatus(Context context) {
    // Check for active network
    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetwork = cm.getActiveNetworkInfo();

    // Determine network type (Wi-Fi, mobile, or not connected)
    if (activeNetwork != null) {
      if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
        return TYPE_WIFI;
      } else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
        return TYPE_MOBILE;
      }
    }
    return TYPE_NOT_CONNECTED;
  }

  // Convert network status to string representation (Wi-Fi, mobile, or not connected)
  public static int getConnectivityStatusString(Context context) {
    int conn = NetworkUtil.getConnectivityStatus(context);
    int status = 0;
    if (conn == NetworkUtil.TYPE_WIFI) {
      status = NETWORK_STATUS_WIFI;
    } else if (conn == NetworkUtil.TYPE_MOBILE) {
      status = NETWORK_STATUS_MOBILE;
    } else if (conn == NetworkUtil.TYPE_NOT_CONNECTED) {
      status = NETWORK_STATUS_NOT_CONNECTED;
    }
    return status;
  }
}</code>
ログイン後にコピー

インターネット接続の変更用のブロードキャスト レシーバー

インターネット接続の変更をリッスンするブロードキャスト レシーバーを作成します:

<code class="java">public class NetworkChangeReceiver extends BroadcastReceiver {
  @Override
  public void onReceive(final Context context, final Intent intent) {
    int status = NetworkUtil.getConnectivityStatusString(context);
    if ("android.net.conn.CONNECTIVITY_CHANGE".equals(intent.getAction())) {
      if (status == NetworkUtil.NETWORK_STATUS_NOT_CONNECTED) {
        // Handle loss of Internet connection
      } else {
        // Handle recovery of Internet connection
      }
    }
  }
}</code>
ログイン後にコピー

AndroidManifest.xml 構成

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>
ログイン後にコピー

このアプローチを実装することで、インターネット接続の変化を監視し、それに応じて応答し、Web の安定性を確保できます。インターネット接続が突然失われるシナリオでのアプリの機能。

以上がAndroid で信頼性の高いインターネット接続変更リスナーを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート