系统信息
在Android中可以通过android.os.Build这个类和System.getProperty(“xxx”);来获取设备信息,下面列举的常见设备信息摘自Android群英传
Build.BOARD // 主板
Build.BRAND // 系统定制商
Build.SUPPORTED_ABIS //CPU指令集
Build.DEVICE // 设备参数
Build.DISPLAY // 显示屏参数
Build.FINGDERPRINT // 唯一编号
Build.SERIAL // 硬件序列号
Build.ID // 修订版本列表
Build.MANUFACTURER // 硬件制造商
Build.MODEL //版本
Build.HARDWARE //硬件名
Build.PRODUCT //手机产品名
Build.TAGS // 描述build的标签
Build.TYPE // Builder类型
Build.VERSION.CODENAME //当前开发代号
Build.VERSION.INCREMENTAL //源码控制版本号
Build.VERSION.RELEASE //版本字符串
Build.VERSION.SDK_INT //版本号
Build.HOST // HOST值
Build.USER // User名
Build.TIME // 编译时间
System.Property
os.version // OS版本号
os.name // OS名称
os.arch // OS架构
user.home //home属性
user.name // name属性
user.dir //dir属性
user.timezone //时区
path.separator //路径分隔符
line.separator // 行文分隔符
file.separator //文件分隔符
java.vendor.url // Java vender URL属性
java.class.path // Java Class路径
java.class.version // Java class版本
java.vendor // java vender 属性
java.version // Java 版本
java.home // Java Home 属性
// 获取主板信息
String borad = Build.BOARD
// 获取OS版本
String osVersion = System.getProperty("os.version");
手机号码
TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
String deviceid = tm.getDeviceId();//获取智能设备唯一编号
String te1 = tm.getLine1Number();//获取本机号码
String imei = tm.getSimSerialNumber();//获得SIM卡的序号
String imsi = tm.getSubscriberId();//得到用户Id
需要权限
<uses-permissionandroid:nameuses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>
此方法并不通用,可能运营商并为写入手机号码到SIM,只有IMSI
解决思路:@TODO
可以通过给运营商发送短信,比如向10086发送固定短码查询手机相关资讯,并监听短信返回结果,然后解析出所需要的手机号码
国家码
values/attr.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- 国家码 -->
<string-array name="CountryCodes">
<item>93,AF</item>
<item>263,ZW</item>
</string-array>
</resources>
/**
* 获取国家码
*/
public static String getCountryZipCode(Context context) {
String CountryID = "";
String CountryZipCode = "";
TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
CountryID = manager.getSimCountryIso().toUpperCase();
Log.d("ss", "CountryID--->>>" + CountryID);
String[] rl = context.getResources().getStringArray(R.array.CountryCodes);
for (int i = 0; i < rl.length; i++) {
String[] g = rl[i].split(",");
if (g[1].trim().equals(CountryID.trim())) {
CountryZipCode = g[0];
break;
}
}
return CountryZipCode;
}