android 常用系统信息获取总结
2014-04-18 17:56
381 查看
最近在帮客户做技术实施方案,需要获取系统这块的内容,今天专程用了两个小时从网上搜集的资料做了个总结;
转载自:http://blog.csdn.net/waterlxj/article/details/24037585
博主微信号:googlf
![](http://img.blog.csdn.net/20140418182045390?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvV2F0ZXJMWEo=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
------------------------------------code start-----------------------------------
TelephonyManager tm = (TelephonyManager)
this
.getSystemService(Context.TELEPHONY_SERVICE);
// 所有的设备都可以返回一个TelephonyManager.getDeviceId()
// 如果是GSM网络,返回IMEI;如果是CDMA网络,返回MEID
// 手机的唯一标识,像GSM手机的 IMEI 和 CDMA手机的 MEID. 但在中国山寨手机导致这个号码不是唯一标识了
// 取出的值是international mobile Equipment identity手机唯一标识码,即imei;
String deviceid = tm.getDeviceId();
// 对于移动的用户,手机号码(MDN)保存在运营商的服务器中,而不是保存在SIM卡里。SIM卡只保留了IMSI和一些验证信息
// 取出的 值是手机号,即MSISDN : mobile subscriber ISDN用户号码,这个是我们说的139,136那个号码;
// 是通过SIM卡相关文件记录得到的数据
// 归结到是否可以从SIM卡的EFmsisdn文件取出手机号码了,不幸的是一般运营商不会把用户号码写在这个文件的,为什么呢?
// 因为这个手机号码是在用户买到卡并开通时才将IMSI和MSISDN对应上的,卡内生产出来时只有IMSI,你不知道用户喜欢那个手机号码,因此一般不先对应IMSI和MSISDN,即时有对应也不写这个文件的。
String tel = tm.getLine1Number();
// 所有的GSM设备(测试设备都装载有SIM卡) 可以返回一个TelephonyManager.getSimSerialNumber()
// 所有的CDMA 设备对于 getSimSerialNumber() 却返回一个空值!
// 360手机卫士可能会影响到imei和imsi的获取,禁止了“获取该应用获取设备信息”,改为“允许”即可正常获取IMEI、IMSI
// 返回SIM卡的序列号(ICCID) ICCID:ICC
// identity集成电路卡标识,这个是唯一标识一张卡片物理号码的
String iccid = tm.getSimSerialNumber();
//
sim卡的序列号(IMSI),international
//
mobiles subscriber
// identity国际移动用户号码标识,
String imsi = tm.getSubscriberId();
// 获取imei和imsi的第二种方法
// String imsi2 =android.os.SystemProperties.get(
// android.telephony.TelephonyProperties.PROPERTY_IMSI);
// String imei2
// =android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMEI);
// 此处获取设备ANDROID_ID
// 所有添加有谷歌账户的设备可以返回一个 ANDROID_ID
// 所有的CDMA设备对于 ANDROID_ID 和
// TelephonyManager.getDeviceId()返回相同的值(只要在设置时添加了谷歌账户)
// 有些山寨手机这个号码是一个…
// 是一个64位的数字,在设备第一次启动的时候随机生成并在设备的整个生命周期中不变。(如果重新进行出厂设置可能会改变)
String android_id = Secure.getString(this.getContentResolver(),
Secure.ANDROID_ID);
// 获取Android手机型号和OS的版本号
String mobileName = Build.DEVICE;
String osVersion = Build.VERSION.RELEASE;
WifiManager wifi = (WifiManager)
this
.getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifi.getConnectionInfo();
String macAddress = info.getMacAddress();// 更换为MacAddressWifi地址
String softwareVersion = tm.getDeviceSoftwareVersion();// String
// String versionName = null;
// String versionCode = null;
// PackageManagerpm = this.getPackageManager();
// PackageInfo pi;
// try {
// pi = pm.getPackageInfo(this.getPackageName(), 0);
// versionName = pi.versionName;
// versionCode = String.valueOf(pi.versionCode);
// } catch (NameNotFoundException e) {
// //
TODO Auto-generated catch block
// e.printStackTrace();
// }
//获取当前手机支持的移动网络类型
String phoneType = null;
switch (tm.getPhoneType()) {
case TelephonyManager.PHONE_TYPE_NONE:
phoneType =
"NONE: ";
break;
case TelephonyManager.PHONE_TYPE_GSM:
phoneType =
"GSM: IMEI";
break;
case TelephonyManager.PHONE_TYPE_CDMA:
phoneType =
"CDMA: MEID/ESN";
break;
/*
* for API Level 11 or above case TelephonyManager.PHONE_TYPE_SIP:
* return "SIP";
*/
default:
phoneType =
"UNKNOWN: ID";
break;
}
String sytemInfo = "设备名称 : " + mobileName +"\n系统版本:" + osVersion +"\n软件版本: "
+ softwareVersion +"\n设备ID(imei) " + deviceid +"\n"
+"手机号 : " + tel +"\n" +"SIM卡集成电路卡标识 : " + iccid +"\n"
+"SIM国际移动号码标示 : " + imsi +"\n" +"ANDROID_ID : " + android_id
+
"\n手机网络类型: " + phoneType + "\nMAC地址: " + macAddress;
------------------------------------code end-----------------------------------
源码位置:
转载自:http://blog.csdn.net/waterlxj/article/details/24037585
博主微信号:googlf
转载自:http://blog.csdn.net/waterlxj/article/details/24037585
博主微信号:googlf
------------------------------------code start-----------------------------------
TelephonyManager tm = (TelephonyManager)
this
.getSystemService(Context.TELEPHONY_SERVICE);
// 所有的设备都可以返回一个TelephonyManager.getDeviceId()
// 如果是GSM网络,返回IMEI;如果是CDMA网络,返回MEID
// 手机的唯一标识,像GSM手机的 IMEI 和 CDMA手机的 MEID. 但在中国山寨手机导致这个号码不是唯一标识了
// 取出的值是international mobile Equipment identity手机唯一标识码,即imei;
String deviceid = tm.getDeviceId();
// 对于移动的用户,手机号码(MDN)保存在运营商的服务器中,而不是保存在SIM卡里。SIM卡只保留了IMSI和一些验证信息
// 取出的 值是手机号,即MSISDN : mobile subscriber ISDN用户号码,这个是我们说的139,136那个号码;
// 是通过SIM卡相关文件记录得到的数据
// 归结到是否可以从SIM卡的EFmsisdn文件取出手机号码了,不幸的是一般运营商不会把用户号码写在这个文件的,为什么呢?
// 因为这个手机号码是在用户买到卡并开通时才将IMSI和MSISDN对应上的,卡内生产出来时只有IMSI,你不知道用户喜欢那个手机号码,因此一般不先对应IMSI和MSISDN,即时有对应也不写这个文件的。
String tel = tm.getLine1Number();
// 所有的GSM设备(测试设备都装载有SIM卡) 可以返回一个TelephonyManager.getSimSerialNumber()
// 所有的CDMA 设备对于 getSimSerialNumber() 却返回一个空值!
// 360手机卫士可能会影响到imei和imsi的获取,禁止了“获取该应用获取设备信息”,改为“允许”即可正常获取IMEI、IMSI
// 返回SIM卡的序列号(ICCID) ICCID:ICC
// identity集成电路卡标识,这个是唯一标识一张卡片物理号码的
String iccid = tm.getSimSerialNumber();
//
sim卡的序列号(IMSI),international
//
mobiles subscriber
// identity国际移动用户号码标识,
String imsi = tm.getSubscriberId();
// 获取imei和imsi的第二种方法
// String imsi2 =android.os.SystemProperties.get(
// android.telephony.TelephonyProperties.PROPERTY_IMSI);
// String imei2
// =android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMEI);
// 此处获取设备ANDROID_ID
// 所有添加有谷歌账户的设备可以返回一个 ANDROID_ID
// 所有的CDMA设备对于 ANDROID_ID 和
// TelephonyManager.getDeviceId()返回相同的值(只要在设置时添加了谷歌账户)
// 有些山寨手机这个号码是一个…
// 是一个64位的数字,在设备第一次启动的时候随机生成并在设备的整个生命周期中不变。(如果重新进行出厂设置可能会改变)
String android_id = Secure.getString(this.getContentResolver(),
Secure.ANDROID_ID);
// 获取Android手机型号和OS的版本号
String mobileName = Build.DEVICE;
String osVersion = Build.VERSION.RELEASE;
WifiManager wifi = (WifiManager)
this
.getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifi.getConnectionInfo();
String macAddress = info.getMacAddress();// 更换为MacAddressWifi地址
String softwareVersion = tm.getDeviceSoftwareVersion();// String
// String versionName = null;
// String versionCode = null;
// PackageManagerpm = this.getPackageManager();
// PackageInfo pi;
// try {
// pi = pm.getPackageInfo(this.getPackageName(), 0);
// versionName = pi.versionName;
// versionCode = String.valueOf(pi.versionCode);
// } catch (NameNotFoundException e) {
// //
TODO Auto-generated catch block
// e.printStackTrace();
// }
//获取当前手机支持的移动网络类型
String phoneType = null;
switch (tm.getPhoneType()) {
case TelephonyManager.PHONE_TYPE_NONE:
phoneType =
"NONE: ";
break;
case TelephonyManager.PHONE_TYPE_GSM:
phoneType =
"GSM: IMEI";
break;
case TelephonyManager.PHONE_TYPE_CDMA:
phoneType =
"CDMA: MEID/ESN";
break;
/*
* for API Level 11 or above case TelephonyManager.PHONE_TYPE_SIP:
* return "SIP";
*/
default:
phoneType =
"UNKNOWN: ID";
break;
}
String sytemInfo = "设备名称 : " + mobileName +"\n系统版本:" + osVersion +"\n软件版本: "
+ softwareVersion +"\n设备ID(imei) " + deviceid +"\n"
+"手机号 : " + tel +"\n" +"SIM卡集成电路卡标识 : " + iccid +"\n"
+"SIM国际移动号码标示 : " + imsi +"\n" +"ANDROID_ID : " + android_id
+
"\n手机网络类型: " + phoneType + "\nMAC地址: " + macAddress;
------------------------------------code end-----------------------------------
源码位置:
转载自:http://blog.csdn.net/waterlxj/article/details/24037585
博主微信号:googlf
相关文章推荐
- android 常用系统信息获取总结
- Android 获取常用的系统及应用的版本信息
- 使用Java获取系统信息的常用代码整理总结
- Android常用方法——获取系统信息
- Android系统信息(内存(RAM)、cpu、sd卡、电量、版本)获取
- [置顶] Android中高仿快牙实现Socket列表的展示,获取安卓手机系统安装的应用和自己安装的应用相关信息
- android系统信息(内存、cpu、sd卡、电量、版本)获取
- Android获取系统相关的信息
- 常用查看Linux系统信息命令总结
- Android获取系统储存以及内存信息(一)
- Android系统信息获取 之六:网络连接状态信息获取
- Android系统信息获取 之十一:获取IMEI,IMSI号
- Android中获取系统内存信息以及进程信息-----ActivityManager的使用(一)
- android系统信息(内存、cpu、sd卡、电量、版本)获取
- Android开发之获取系统所有进程信息。
- 获取Android系统中应用程序的信息——PackageManger(一)
- Android系统信息获取 之三:CPU信息获取
- android 获取当前系统及应用信息(一)
- Android Build类获取系统信息
- Android系统信息获取 之十三:Linux内核版本信息获取