获取和改变Android手机网络状态的代码实现
2013-06-07 12:00
309 查看
一、判断WIFI或者GPRS是否打开
//获取SIM卡的服务商
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(); } }
相关文章推荐
- Android获取当前手机网络类型(2g、3g、4g、wifi)以及手机型号、版本号代码
- Android 监听手机GPS打开状态实现代码
- android网络获取图片并保存在本地和获取手机SD卡中的图片显示到ImageView上及利用代码删除图片
- Android实现横屏状态下通过代码弹出EditText并获取焦点弹出软键盘
- 判断手机是否ROOT 代码实现+ Android 操作系统 获取Root权限 原理解析
- android 获取手机的网络状态
- 朝花夕拾-android 获取当前手机的内存卡状态和网络连接状态
- Android实现横屏状态下通过代码弹出EditText并获取焦点弹出软键盘
- Android获取手机位置代码实现
- android 获取手机网络状态
- android手机获取gps和基站的经纬度地址实现代码
- 获取Android手机中所有短信的实现代码
- android获取手机的网络状态
- 获取手机的网络连接状态——暂时实现区分wifi和流量的
- android手机获取gps和基站的经纬度地址实现代码
- android获取手机的网络状态
- Android获取手机位置的实现代码
- Android获取手机位置代码实现
- Android如何获取当前手机的网络状态
- Android端如何获取手机当前的网络状态,比如wifi还是3G, 还是2G, 电信还是联通,还是移动