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 该文章说到了开关了数据连接,没试

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值