android判断手机是否联网

如果拟开发一个网络应用的程序,首先考虑是否接入网络,在Android手机中判断是否联网可以通过 ConnectivityManager 类的isAvailable()方法判断,首先获取网络通讯类的实例 

ConnectivityManager cwjManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); ,

使用cwjManager.getActiveNetworkInfo().isAvailable(); 来返回是否有效,

如果为True则表示当前Android手机已经联网,可能是WiFi或GPRS、HSDPA等等,具体的可以通过ConnectivityManager 类的getActiveNetworkInfo() 方法判断详细的接入方式,需要注意的是有关调用需要加入

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> 这个权限,

android开发网提醒大家在真机上Market和Browser程序都使用了这个方法,来判断是否继续,同时在一些网络超时的时候也可以检查下网络连接是否存在,以免浪费手机上的电力资源。

代码部分:


package cn.com.jdsc;


import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;


import cn.com.jdsc.BuyActivity.btnRegisterClick;
import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.widget.TextView;


public class LinkState extends Activity {


boolean state;
TextView stateTextView;
private int nType;
int netType = -1;


@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.link);
stateTextView = (TextView) findViewById(R.id.link_textview);


getState();


}


private void getState() {
// TODO Auto-generated method stub
ConnectivityManager cwjManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cwjManager.getActiveNetworkInfo();
// state = cwjManager.getActiveNetworkInfo().isAvailable();
// if (state == true) {
// stateTextView.setText("网咯状态已链接");
// }
// else{
// stateTextView.setText("网咯状态没有链接");
// }
// }
// statesss = networkInfo.getType();
//
// if (statesss == 1) {
// stateTextView.setText("wap网咯");
// } else {
//
// }
// -1:没有网络  1:WIFI网络2:wap网络3:net网络
if (networkInfo == null) {
stateTextView.setText("没有网络");
}
nType = networkInfo.getType();
if (nType == ConnectivityManager.TYPE_MOBILE) {
Log.e("networkInfo.getExtraInfo()",
"networkInfo.getExtraInfo() is "
+ networkInfo.getExtraInfo());
if (networkInfo.getExtraInfo().toLowerCase().equals("cmnet")) {
netType = 3;
stateTextView.setText("net网络");
}
else {
netType = 2;
stateTextView.setText("wap网络");
}
}
else if (nType == ConnectivityManager.TYPE_WIFI) {
netType = 1;
stateTextView.setText("WIFI网络");


// * NETWORK_TYPE_CDMA 网络类型为CDMA
//         * NETWORK_TYPE_EDGE 网络类型为EDGE
//         * NETWORK_TYPE_EVDO_0 网络类型为EVDO0
//         * NETWORK_TYPE_EVDO_A 网络类型为EVDOA
//         * NETWORK_TYPE_GPRS 网络类型为GPRS
//         * NETWORK_TYPE_HSDPA 网络类型为HSDPA
//         * NETWORK_TYPE_HSPA 网络类型为HSPA
//         * NETWORK_TYPE_HSUPA 网络类型为HSUPA
//         * NETWORK_TYPE_UMTS 网络类型为UMTS
}


}

// private String getPhoneIp() {
//        try {  
//            for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {  
//                NetworkInterface intf = en.nextElement();  
//                for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {  
//                    InetAddress inetAddress = enumIpAddr.nextElement();  
//                    if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) {  
//                    //if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet6Address) {  
//                        return inetAddress.getHostAddress().toString();  
//                    }  
//                }  
//            }  
//        } catch (Exception e) {  
//        }  
//        return ""; 
//    }
}


布局文件:



<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >


    <TextView
        android:id="@+id/link_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" 
        android:textColor="#345671"
        android:textSize="20sp"/>


</LinearLayout>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值