您的位置:首页 > 理论基础 > 计算机网络

获取和改变Android手机网络状态的代码实现

2013-06-07 12:00 309 查看
一、判断WIFI或者GPRS是否打开

import android.net.wifi.WifiManager;

public boolean isNetConnected(Context context) {
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if(connManager!=null){
State wifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
State gprs = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
if(wifi == State.CONNECTED || gprs == State.CONNECTED){
return true;
}
}
}


//获取IMEI
void getDeviceId(Context context) {
TelephonyManager telephonyManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
String imei = telephonyManager.getDeviceId();
Log.v(TAG, "imei:" + imei);
}

//获取双卡双待IMEI
public boolean getDeviceIdBySlot(Context context, int slotID){
boolean isReady = false;

Log.v(TAG, "isDeviceIdBySlot:" + slotID);

if(context == null){
return false;
}

if(slotID < 0 || slotID > 1){
return false;
}
try{
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);

Class<?> mLoadClass = Class.forName("android.telephony.TelephonyManager");

Class<?>[] parameter = new Class[1];
parameter[0] = int.class;
Method getSimStateGemini = mLoadClass.getMethod("getDeviceIdGemini", parameter);

Object[] obParameter = new Object[1];
obParameter[0] = slotID;
Object ob_phone = getSimStateGemini.invoke(telephonyManager, obParameter);

if(ob_phone != null){
String imei = ob_phone.toString();
Log.v(TAG, imei);
int simState = Integer.parseInt(ob_phone.toString());
if(simState == TelephonyManager.SIM_STATE_READY){
isReady = true;
}
}
} catch (Exception e) {
Log.v(TAG, "getDeviceIdBySlot:" + slotID + " Exception!");
e.printStackTrace();
}

return isReady;
}


//获取SIM卡状态
public void getSimState(Context context) {
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
int state = telephonyManager.getSimState();

if (TelephonyManager.SIM_STATE_READY == state) {
Log.v(TAG, "Sim卡准备好");
}
}

//获取双卡双待SIM卡状态
public boolean getSimStateBySlot(Context context, int slotID){
boolean isReady = false;

Log.v(TAG, "getSimStateBySlot:" + slotID);

if(context == null){
return false;
}

if(slotID < 0 || slotID > 1){
return false;
}
try{
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);

Class<?> mLoadClass = Class.forName("android.telephony.TelephonyManager");

Class<?>[] parameter = new Class[1];
parameter[0] = int.class;
Method getSimStateGemini = mLoadClass.getMethod("getSimStateGemini", parameter);

Object[] obParameter = new Object[1];
obParameter[0] = slotID;
Object ob_phone = getSimStateGemini.invoke(telephonyManager, obParameter);

if(ob_phone != null){
int simState = Integer.parseInt(ob_phone.toString());
if(simState == TelephonyManager.SIM_STATE_READY){
isReady = true;
Log.v(TAG, "getSimStateBySlot:" + slotID + " READY");
}
}
} catch (Exception e) {
Log.v(TAG, "getSimStateBySlot:" + slotID + " Exception!");
e.printStackTrace();
}

return isReady;
}


//获取SIM卡的服务商

public void getOperator(Context context) {
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
String ope = telephonyManager.getSimOperator();

if (ope.equals("46000") || ope.equals("46002")) {
Log.v(TAG, "中国移动");
} else if (ope.equals("46001")) {
Log.v(TAG, "中国联通");
} else {
Log.v(TAG, "中国电信");
}
}


//获取双卡双待SIM卡的服务商
public void getOperatorBySlot(Context context, int slotID) {
Log.v(TAG, "getOperatorBySlot:" + slotID);
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
try {
Class<?> mLoadClass = Class.forName("android.telephony.TelephonyManager");

Class<?>[] parameter = new Class[1];
parameter[0] = int.class;
Method getSimStateGemini = mLoadClass.getMethod("getSimOperatorGemini", parameter);

Object[] obParameter = new Object[1];
obParameter[0] = slotID;
Object ob_phone = getSimStateGemini.invoke(telephonyManager, obParameter);

if(ob_phone != null){
String operator = ob_phone.toString();

if (operator.equals("46000") || operator.equals("46002")) {
Log.v(TAG, "卡:" + slotID + "中国移动");
} else if (operator.equals("46001")) {
Log.v(TAG, "卡:" + slotID + "中国联通");
} else {
Log.v(TAG, "卡:" + slotID + "中国电信");
}
}

} catch (Exception e) {
Log.v(TAG, "getOperatorBySlot:" + slotID + " Exception!");
e.printStackTrace();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: