Android生成唯一标识符UUID

转载 2013年12月04日 14:00:45

在这次新版本的app开发中,其中增加了游客账号访问,但需要为该游客生成一个唯一标识符identity,最初考虑通过mac地址或者imei来唯一标识,但是后面有一项需求,游客账号可以升级,升级之后退出重新游客访问的话就需要生成新的identity,这样一来就必须手动生成唯一的identity了,好在java提供了生成UUID唯一标示符。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成GUID。从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复。

UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),UUID的唯一缺陷在于生成的结果串会比较长。

生成代码比较简单,就一句:

java.util.UUID.randomUUID().toString();


如果未升级的游客账号退出重新登录这个时候再重新访问还是用原来的identity,解决方法也很简单,把第一次生成的identity存起来,下次就直接取值了,看下代码吧:


public String getIdentity() {
  SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences(context);
  String identity = preference.getString("identity", null);
  if (identity == null) {
      identity = java.util.UUID.randomUUID().toString();
      preference.edit().putString("identity", identity);
  }
  return identity;
}

转载:http://stormzhang.github.io/blog/2013/10/11/java-generate-identity/

相关文章推荐

Android获取本机唯一序列号和可变UUID方法

UUID+设备号序列号 唯一识别码(不可变) private String getMyUUID(){   final TelephonyManager tm = (TelephonyManager...
  • Buaaroid
  • Buaaroid
  • 2014年09月18日 14:55
  • 24752

稳定获取Android设备唯一码(UUID)的解决方案

最近做的一个项目中需要用到Android设备唯一码(UUID)来标识一台设备, Android中设备唯一码有很多,如:MAC地址、IMEI号(DeviceId)、IMSI号、ANDROID_ID、序列...

Android唯一标识生成方案

友盟有个统计功能,每当你的App在新的设备上安装过,友盟的后台就能统计到新增设备。 当你卸载程序,再次安装。友盟后台却能分辨出你这不是一台新的设备。 这个到底是怎么做到的,首先让我想到的是获取手机的...

Android 手机上获取物理唯一标识码 IMEI和UUID

唯一标识码这东西在网络应用中非常有用,例如检测是否重复注册之类的。 import android.provider.Settings.Secure; private String androi...

获取Android设备的唯一识别码UUID

转载自:http://www.cnblogs.com/xiaowenji/archive/2011/01/11/1933087.html如何获取一个能唯一标识每台Android设备的序号?这个问题有很...

UUID介绍以及android中使用

讨论UUID的定义、分类、应用及生成工具。 什么是UUID? UUID是Universally Unique Identifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的机器生成...

Android获取设备唯一ID的几种方式

转载来源http://blog.csdn.net/u014651216/article/details/50767326 先来看看几种比较单一的方式:  IMEI 方式:Tele...

一起学android之如何获取Android设备的唯一识别码笔记(21)

因为需要在项目中需要获得一个稳定、可靠的设备唯一识别码,因此搜了一些网上的资料。今天我们将介绍几种方式。        1. DEVICE_ID  假设我们确实需要用到真实设备的标识,可能就需要用到...

UUID和GUID

通用惟一标识符(UUID)是128位比特的数字,用来惟一地标识因特网上的某些对象或者实体。 A Universally Unique Identifier is an identif...

Android Api Guid 之App Components 笔记

1 每个Android应用程序会被分给一个 linux帐号 usrer ID 2 每个Android应用程序被分配一个 VM 3 Application Component   共四个组件: ...
  • oney139
  • oney139
  • 2012年09月03日 11:24
  • 4235
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android生成唯一标识符UUID
举报原因:
原因补充:

(最多只允许输入30个字)