通过android提供的TelephonyManager类来获取手机相关信息如下:
public void getPhoneInfo()
{
TelephonyManager telephonyManager=(TelephonyManager) CommonVariable.getContext().getSystemService(Context.TELEPHONY_SERVICE);
//获取IMEI号码
String imei = telephonyManager.getDeviceId();
//获取手机号码,部分手机可以获取,不能获取的为空
String phoneNumber = telephonyManager.getLine1Number();
//获取IMSI号码
String imsi = telephonyManager.getSubscriberId();
// 手机型号
String mtype = android.os.Build.MODEL;
//获取运营商信息
String providersName = getProvidersName(imsi);
}
/**
* Role:Telecom service providers获取手机服务商信息 <BR>
* 需要加入权限<uses-permission
* android:name="android.permission.READ_PHONE_STATE"/> <BR>
* Date:2012-3-12 <BR>
* @author CODYY)peijiangping
*/
public String getProvidersName(String imsi) {
String ProvidersName = null;
if(imsi == null)
return ProvidersName;
// IMSI号前面3位460是国家,紧接着后面2位00 02是中国移动,01是中国联通,03是中国电信。
System.out.println(imsi);
if (imsi.startsWith("46000") || imsi.startsWith("46002")) {
ProvidersName = "中国移动";
} else if (imsi.startsWith("46001")) {
ProvidersName = "中国联通";
} else if (imsi.startsWith("46003")) {
ProvidersName = "中国电信";
}
return ProvidersName;
}
需要加入权限<uses-permission
android:name="android.permission.READ_PHONE_STATE"/>