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