android判断网络是否连上

示例代码:

    import android.net.ConnectivityManager;

    final ConnectivityManager connMgr =

        (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

    final android.net.NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

    final android.net.NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

    if (wifi.isConnected() || mobile.isConnected())

        return true;
    else
        return false;



ConnectivityManager还有以下一些TYPE

intTYPE_BLUETOOTHThe Default Bluetooth data connection.
intTYPE_DUMMYDummy data connection.
intTYPE_ETHERNETThe Default Ethernet data connection.
intTYPE_MOBILEThe Default Mobile data connection.
intTYPE_MOBILE_DUNA DUN-specific Mobile data connection.
intTYPE_MOBILE_HIPRIA High Priority Mobile data connection.
intTYPE_MOBILE_MMSAn MMS-specific Mobile data connection.
intTYPE_MOBILE_SUPLA SUPL-specific Mobile data connection.
intTYPE_WIFIThe Default WIFI data connection.
intTYPE_WIMAXThe Default WiMAX data connection.


NetworkInfo还有以下方法

boolean isAvailable()
Indicates whether network connectivity is possible.
boolean isConnected()
Indicates whether network connectivity exists and it is possible to establish connections and pass data.
boolean isConnectedOrConnecting()
Indicates whether network connectivity exists or is in the process of being established.
boolean isFailover()
Indicates whether the current attempt to connect to the network resulted from the ConnectivityManager trying to fail over to this network following a disconnect from another network.
boolean isRoaming()
Indicates whether the device is currently roaming on this network.


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
判断Android设备是否真正连通网络,可以通过以下步骤: 1. 添加网络状态监听器,监听网络连接状态的变化。 ```java ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkRequest.Builder builder = new NetworkRequest.Builder(); builder.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET); builder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR); builder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI); NetworkRequest request = builder.build(); connectivityManager.registerNetworkCallback(request, new ConnectivityManager.NetworkCallback() { @Override public void onAvailable(Network network) { // 网络已连接 } @Override public void onLost(Network network) { // 网络已断开 } }); ``` 2. 判断当前网络是否可用。 ```java ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); if (activeNetworkInfo != null && activeNetworkInfo.isConnected()) { // 网络可用 } else { // 网络不可用 } ``` 3. 使用ping命令测试网络连接。 ```java public static boolean isNetworkConnected() { try { String command = "/system/bin/ping -c 1 8.8.8.8"; return Runtime.getRuntime().exec(command).waitFor() == 0; } catch (IOException | InterruptedException e) { e.printStackTrace(); } return false; } ``` 以上是在Android平台上判断网络是否真正连通的方法,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值