ps:权限需要注意下:
READ_PHONE_STATE 读取手机的状态权限可以通过查找TelephonyManager。
有些方法需要权限,比如getLine1Number(),getSubscriberId(),getDeviceId()...
有些方法不需要,比如getSimOperator(),getNetworkOperator()...
一、注意:更新运营商判断规则~
中国移动系统使用00、02、04、07,中国联通GSM系统使用01、06、09,中国电信CDMA系统使用03、05、电信4G使用11,中国铁通系统使用20。
注意:getSimOperator方法不需要READ_PHONE_STATE权限
/**
* 返回手机运营商名称
* 中国移动系统使用00、02、04、07,中国联通GSM系统使用01、06、09,中国电信CDMA系统使用03、05、电信4G使用11,中国铁通系统使用20。
*/
public void getMobileOperatorName() {
TelephonyManager telManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
//getSimOperator方法不需要READ_PHONE_STATE权限
String operator = telManager.getSimOperator();
Log.d(TAG, "operator:" + operator);
if (operator != null) {
if (operator.equals("46000") || operator.equals("46002") || operator.equals("46004") || operator.equals("46007")) {
//中国移动
Log.d(TAG, "中国移动");
} else if (operator.equals("46001") || operator.equals("46006") || operator.equals("46009")) {
//中国联通
Log.d(TAG, "中国联通");
} else if (operator.equals("46003") || operator.equals("46005") || operator.equals("46011")) {
//中国电信
Log.d(TAG, "中国电信");
} else if (operator.equals("46020")) {
Log.d(TAG, "中国铁通");
}
}
}
二、与手机卡相关的方法
1、检查手机是否有sim卡
getSimOperator方法不需要READ_PHONE_STATE权

本文介绍了Android系统中更新的运营商判断规则,包括无SIM卡检测、GPRS流量开关判断、通过蜂窝数据获取运营商名称等方法,同时强调了权限使用的重要性,特别是涉及敏感权限READ_PHONE_STATE的使用建议。

390

被折叠的 条评论
为什么被折叠?



