首頁 > Java > java教程 > 如何在 Android 中建立可靠的網路連線變更偵聽器?

如何在 Android 中建立可靠的網路連線變更偵聽器?

DDD
發布: 2024-10-29 10:12:02
原創
1040 人瀏覽過

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

Android 中的Internet 連線變更偵聽器

連線變更的預設廣播接收器監視網路可用性,但不一定會監視Internet 連線。為了解決這個限制,讓我們探索更全面的方法。

網際網路連線監控

利用下列公用程式類別來決定目前的網路連線狀態:

<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>
登入後複製

用於網路連線更改的廣播接收器

建立偵聽Internet 連接變更的廣播接收器:

<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>
登入後複製

在AndroidManifest.xml中聲明廣播接收器和必要的權限:透過實施此方法,您可以監控Internet連線的變更並做出相應的回應,從而確保網路的穩定性在突然失去網路連線的情況下應用程式的功能。

以上是如何在 Android 中建立可靠的網路連線變更偵聽器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板