这里有新鲜出炉的精品教程,程序狗速度看过来!
Android 是一种基于 Linux 的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由 Google 公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用 "安卓" 或 "安致"。
为大家详细介绍了 android 手机获取唯一标识的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这篇文章主要
获取手机唯一标识
拼接的方式获取手机唯一标识
第一种方式是获取 IMEI, 但是有的手机如果不是正品的话,就获取不到所以通过这一种方式还是会出现有的设备是没有唯一标识的
第二种方式获取手机卡的序列号,当然这种也不是唯一的,因为有的手机是双卡双待的所以可能会出现空的情况
第三种方式是万能的也就是 UUID, 随机生成一个标识,但是必须保存在本地,防止下一次进入的时候再次生成随机码
进行三层判断,来获取手机的唯一标识。
- //获取手机的唯一标识
- public String getPhoneSign() {
- StringBuilder deviceId = new StringBuilder();
- // 渠道标志
- deviceId.append("a");
- try {
- //IMEI(imei)
- TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
- String imei = tm.getDeviceId();
- if (!TextUtils.isEmpty(imei)) {
- deviceId.append("imei");
- deviceId.append(imei);
- return deviceId.toString();
- }
- //序列号(sn)
- String sn = tm.getSimSerialNumber();
- if (!TextUtils.isEmpty(sn)) {
- deviceId.append("sn");
- deviceId.append(sn);
- return deviceId.toString();
- }
- //如果上面都没有, 则生成一个id:随机码
- String uuid = getUUID();
- if (!TextUtils.isEmpty(uuid)) {
- deviceId.append("id");
- deviceId.append(uuid);
- return deviceId.toString();
- }
- } catch(Exception e) {
- e.printStackTrace();
- deviceId.append("id").append(getUUID());
- }
- return deviceId.toString();
- }
- /**
- * 得到全局唯一UUID
- */
- private String uuid;
- public String getUUID() {
- SharedPreferences mShare = getSharedPreferences("uuid", MODE_PRIVATE);
- if (mShare != null) {
- uuid = mShare.getString("uuid", "");
- }
- if (TextUtils.isEmpty(uuid)) {
- uuid = UUID.randomUUID().toString();
- mShare.edit().putString("uuid", uuid).commit();
- }
- return uuid;
- }
来源: http://www.phperz.com/article/17/0822/337560.html