系统信息
在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; }