获取设备唯一标示

 

//获取IMEI,不过此方法依赖TelephonyManager,是不是无电话功能的android系统,也支持,不知道
private void getImieStatus() {
 TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
 String deviceId = tm.getDeviceId();
 Log.e("DEVICE_ID ", deviceId + " ");
 }
//获取手机SIM卡唯一标识
String imsi = (tm.getSubscriberId() == null ? "" : tm.getSubscriberId());
 
//注意此方法,需要导包:import android.provider.Settings.System;java中也有一个System类。
经测试,此中方法是可以信赖的
 private void getAndroidId(){
 String androidId = System.getString(getContentResolver(), System.ANDROID_ID);
 Log.e("ANDROID_ID", androidId + " ");
 }
}
tm.getDeviceId()表示唯一的设备ID,例如对于GSM手机返回IMEI,对于CDMA手机返回MEID,如果设备不可用则返回NULL,比如在模拟器上。
System.getString(getContentResolver(), System.ANDROID_ID)表示一个64位的数字,在设备第一次启动的时候随机生成并在设备的整个生命周期中不变。(如果重新进行出厂设置可能会改变)
参考文章:http://dev.10086.cn/cmdn/wiki/index.php?doc-view-4603.html
http://www.eoeandroid.com/thread-5240-1-1.html
今天在eoe上看到另一方法(获取CPU序列号),但在G2,G7上测试,都无法正常获取:
android也是可以获得我们手机的 cpu序列号的,这证明了 android是一个非常强大的系统,虽然现在还是有一些小的 bug,但是到目前为止, android是一个非常好的手机系统,之所以非常好, android才可以和苹果抗衡,形成手机的流行操作系统。不多说了,下面我们就来看看代码吧:

Java代码:
  1. /**
  2. * 获取CPU序列号
  3. * @return CPU序列号(16位)
  4. * 读取失败为"0000000000000000"
  5. */
  6. public static String getCPUSerial() {
  7. String str = "", strCPU = "", cpuAddress = "0000000000000000";
  8. try {
  9. //读取CPU信息
  10. Process pp = Runtime.getRuntime().exec("cat /proc/cpuinfo");
  11. InputStreamReader ir = new InputStreamReader(pp.getInputStream());
  12. LineNumberReader input = new LineNumberReader(ir);
  13. //查找CPU序列号
  14. for (int i = 1; i < 100; i++) {
  15. str = input.readLine();
  16. if (str != null) {
  17. //查找到序列号所在行
  18. if (str.indexOf("Serial") > -1) {
  19. //提取序列号
  20. strCPU = str.substring(str.indexOf(":") + 1,
  21. str.length());
  22. //去空格
  23. cpuAddress = strCPU.trim();
  24. break;
  25. }
  26. }else{
  27. //文件结尾
  28. break;
  29. }
  30. }
  31. } catch (IOException ex) {
  32. //赋予默认值
  33. ex.printStackTrace();
  34. }
  35. return cpuAddress;
  36. }

参考文章:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=69080&extra=page%3D2


 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值