1.IMEI

TelephonyManagertM=(TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
Stringimei=tM.getDeviceId();
Log.v("ola_log","imei:"+imei);

权限:

<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>

说明:手机的IMEI值

缺点:有的只有Wifi的平板,获取得的值为NULL

2.Android_id

Stringandroid_id=Secure.getString(this.getBaseContext().getContentResolver(),Secure.ANDROID_ID);
Log.v("ola_log","android_id:"+android_id);

说明:设备第一次启动时产生的序号

缺点:网上有人说,某些品牌会有androidid值重复的情况,回厂设定时,androidid值会变更

3.Wifi_MAC

WifiManagerwifiManager=(WifiManager)this.getSystemService(Context.WIFI_SERVICE);
WifiInfowifiInfo=wifiManager.getConnectionInfo();
Log.v("ola_log","MacAddress:"+wifiInfo.getMacAddress());

权限:

<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>

说明:Wifi的MAC

缺点:有的品牌,没有开启Wifi不能取得MAC值

4.Build.serial

StringBuildSERIAL=android.os.Build.SERIAL;
Log.v("ola_log","BuildSERIAL:"+BuildSERIAL);

说明:硬件的唯一值

缺点:API9以后才支持,这对一般的设备来说,已经不是问题

5.UUID

StringUUID_Value=UUID.randomUUID().toString();
Log.v("ola_log","UUID_Value:"+UUID_Value);

说明:randomUUID可以随机的制造一个唯一值,或是利用其他内建方法制造唯一值

(EX:nameUUIDFromBytes(byte[]name)).

缺点:必须要自已处理UUID的制造及储存,若使用randomUUID则代表的是该项次安装的唯一值