WifiManager、ConnectivityManager、TelephonyManager三个类学习

ConnectivityManager,在判断本机的网络情况下用到了。代码:

 

 

// 获取手机当前采用何种网络类型wifi、mobile

private int getNetTyle() {

int Type = NONET;

 

ConnectivityManager cm = (ConnectivityManager) context

.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo info = cm.getActiveNetworkInfo();

if (info != null) {

String typeName = info.getTypeName(); // wifi,mobile

if (!typeName.equalsIgnoreCase("wifi")) {

Type = getCurrentApnInUse();

} else {

Type = WIFIAndCMNET;

 

}

}

 

return Type;

}

 

 

 

TelephonyManager,一般用于与电话相关,比如接电话,挂电话,在实际中没用到过。

用到过的地方:

 

TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);

        String mobile = (tm.getLine1Number() == null ? "" : tm.getLine1Number()); //电话号码

        String imsi = (tm.getSubscriberId() == null ? "" : tm.getSubscriberId());//IMSI

        String imei = (tm.getDeviceId() == null ? "" : tm.getDeviceId());//唯一标识码

        String operator = (tm.getNetworkOperatorName() == null ? "":tm.getNetworkOperatorName());//运营商

 

 

 

WifiManager,在项目中没用到。但看到一个例子,有点震撼。

通过代码,可以去开关手机上的Wifi,从安全角度来说,这样的操作也允许,确实够开放的。

wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);

 

if (wifiManager.isWifiEnabled()) {

         wifiManager.setWifiEnabled(false);

} else {

         wifiManager.setWifiEnabled(true);

}

 

 

参考文章:http://blog.csdn.net/GEOLO/archive/2010/11/15/6011132.aspx,这文章上很全面

http://mm.10086.cn/buluo/topic.php?tid=861,介绍了TelephonyManager中的API

http://blog.csdn.net/Zengyangtech/archive/2010/05/11/5578885.aspx

http://www.apkbus.com/forum.php?mod=viewthread&tid=605 该文章说到了开关了数据连接,没试

 

你可能感兴趣的:(String,网络,service,null,手机,电话)