Android下獲取裝置唯一標識(UDID, DeviceID)
android下獲取裝置唯一標識原本非常簡單(至少不會像iOS一樣禁用這個,禁用那個),但是由於裝置的多樣性需要考慮的東西也對應複雜起來。
先附上完整程式碼
protected static final String PREFS_FILE = "gank_device_id.xml"; protected static final String PREFS_DEVICE_ID = "gank_device_id"; protected static String uuid; static public String getUDID() { if( uuid ==null ) { synchronized (GankMainActivity.class) { if( uuid == null) { final SharedPreferences prefs = s_instance.getSharedPreferences( PREFS_FILE, 0); final String id = prefs.getString(PREFS_DEVICE_ID, null ); if (id != null) { // Use the ids previously computed and stored in the prefs file uuid = id; } else { final String androidId = Secure.getString(s_instance.getContentResolver(), Secure.ANDROID_ID); // Use the Android ID unless it's broken, in which case fallback on deviceId, // unless it's not available, then fallback on a random number which we store // to a prefs file try { if (!"9774d56d682e549c".equals(androidId)) { uuid = UUID.nameUUIDFromBytes(androidId.getBytes("utf8")).toString(); } else { final String deviceId = ((TelephonyManager) s_instance.getSystemService( Context.TELEPHONY_SERVICE )).getDeviceId(); uuid = deviceId!=null ? UUID.nameUUIDFromBytes(deviceId.getBytes("utf8")).toString() : UUID.randomUUID().toString(); } } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } // Write the value out to the prefs file prefs.edit().putString(PREFS_DEVICE_ID, uuid).commit(); } } } } return uuid; }
1、正常情況下可以通過((TelephonyManager) s_instance.getSystemService( Context.TELEPHONY_SERVICE )).getDeviceId(); 來獲取,但是某些平板電腦此函式會返回空
2、通過 Secure.getString(s_instance.getContentResolver(), Secure.ANDROID_ID); 也可以獲取到一個id,但是android2.2或者是某些山寨手機使用這個也是有問題的,它會返回一個固定的值 9774d56d682e549c
3、如果前兩個都沒有獲取到udid,那麼就在程式啟動的時候建立一個隨機的uuid,然後儲存起來。這個算是相容方案,當然這樣的裝置並不會很多。
相關推薦
Android下獲取裝置唯一標識(UDID, DeviceID)
android下獲取裝置唯一標識原本非常簡單(至少不會像iOS一樣禁用這個,禁用那個),但是由於裝置的多樣性需要考慮的東西也對應複雜起來。 先附上完整程式碼protected static final String PREFS_FILE = "gank_device_id.
android獲取裝置唯一標識
IMEI 百度百科解釋:IMEI(International Mobile Equipment Identity)是國際移動裝置身份碼的縮寫,國際移動裝備辨識碼,是由15位數字組成的“電子串號”,它與每臺行動電話機一一對應,而且該碼是全世界唯一的。每一隻行動電話機在組裝完成後都將被賦予一個全
Android獲取裝置唯一標識解決方案
關於Android裝置唯一識別符號號 前言 由於在開發中需要開發遊客模式,在使用者沒有登入的情況下必須確保裝置的唯一性,於是慣性思維想到的肯定是使用DevicesId 來作為裝置的唯一標識,用以代替使用者登入以後的唯一識別符號。 但是由於國內複雜的rom定製情況,以及使
安卓獲取渠道名渠道id Android獲取裝置唯一標識的終極解決方法,防止安卓7.0時崩潰問題
一,先說獲取渠道名(這裡以友盟為例) /* * 4.5.1新加渠道名欄位,用來傳給後臺去統計各個渠道下載量 * */ public static String getSource() { //獲取渠道名 Strin
Android獲取裝置唯一標識碼
話不多說,先貼程式碼 /**獲取裝置唯一標識碼 * @param context 上下文 * @return 裝置唯一標識碼 */ public static String getUDID
android獲取裝置唯一標識完美解決方案
這是Android系統為開發者提供的用於標識手機裝置的串號,也是各種方法中普適性較高的,可以說幾乎所有的裝置都可以返回這個串號,並且唯一性良好。 這個DEVICE_ID可以同通過下面的方法獲取: TelephonyManager tm = (TelephonyManager)getSystemServi
android獲取裝置唯一標識完美解決方案的思考以及實現方式
前言 由於在開發中需要開發遊客模式,在使用者沒有登入的情況下必須確保裝置的唯一性,於是慣性思維想到的肯定是使用DevicesId 來作為裝置的唯一標識,用以代替使用者登入以後的唯一識別符號。 但是由於國內複雜的rom定製情況,以及使用者許可權禁止的情況。De
iOS開發之獲取裝置唯一標識的各種方法?IDFA、IDFV、UDID分別是什麼含義?
一、UDID (Unique Device Identifier) UDID的全稱是Unique Device Identifier,顧名思義,它就是蘋果IOS裝置的唯一識別碼,它由40個字元的字母和數字組成。在很多需要限制一臺裝置一個賬號的應用中經常會用到。
Android 手機獲取物理唯一標識碼和IMEI號和IMSI號
開發者可以通過物理唯一標識碼和IMEI號 來得知 應用有多少使用者安裝,或者正在使用。 物理唯一標識碼 即 ANDROID_ID 是手機系統的唯一號碼。 IMEI號是唯一識別手機的號碼。 IMSI號是與SIM唯一對應的號碼 優缺點: 1.ANDROID_
各種獲取裝置唯一標識的方法介紹
//現在蘋果對隱私方面很嚴 很難獲取一種較好的裝置唯一識別符號方法,下面幾篇博文僅做參考: 使用UUID作為手機唯一識別符號在app刪除並重新安裝後會重新生成。當我們把第一次生成的UUID儲存到KeyChain中就能解決這個問題。 推薦大家使用SFHFKeychai
iOS獲取裝置唯一標識的八種方法
UDID UDID(Unique Device Identifier),iOS 裝置的唯一識別碼,是一個40位十六進位制序列(越獄的裝置通過某些工具可以改變裝置的 UDID),行動網路可以利用 UDID 來識別移動裝置。 許多開發者把 UDID 跟使用者的真
獲取裝置唯一標識(Unique Identifier):Windows系統
之前有做過防止使用者非法使用公司軟體的元件(軟體授權),其中基於windows系統獲取裝置唯一標誌,上任開發者獲取的唯一標識之一CPU ID已經不再唯一產生的Bug,便是參考此文修復。現記錄之。 唯一的標識一個裝置是一個基本功能,可以擁有很多應
獲取Android裝置唯一標識碼
唯一標識碼這東西在網路應用中非常有用,例如檢測是否重複註冊之類的。import android.provider.Settings.Secure;private String android_id = Secure.getString(getContext().getContentResolver(),
[Android][獲取Android裝置唯一標識]
1.落筆緣由 最近需要獲取能夠標誌Android裝置的唯一標識,但是由於Android系統版本不同或者root等諸多原因,造成有些裝置標識為NULL或者標識相同的問題,在網上搜索了相關資料,總結一下各種情況。 2.程式碼 import android.
Android開發 - 獲取Android設備的唯一標識碼(Android 6.0或更高)
申請 安全 地址 vat util new 應該 ret ati 在我們的APP開發中,通常需要獲取到設備的唯一標識。在Android6.0之前,有很多方法我們可以方便獲取到硬件的唯一標識,但是在Android6.0之後,Android系統大幅限制了我們獲取設備的硬件信息。
Android獲取手機唯一標識
//獲取手機唯一標識 private String getId() { StringBuilder deviceId = new StringBuilder(); // 渠道標誌 deviceId.append("a");
獲取iOS裝置唯一標識
轉自:https://www.cnblogs.com/fdyjm/p/7125710.html UDID 在之前的版本是可以被使用的,iOS5及以後,被蘋果禁止使用了(棄用了)。雖然,這個UDID用得很廣泛,但是,不得不說的是,它在慢慢的遠離開發者,不能在考慮使用UDID了。至於這個標示符是
裝置唯一標識方法(Unique Identifier):如何在Windows系統上獲取裝置的唯一標識 zz
原文地址:http://www.vonwei.com/post/UniqueDeviceIDforWindows.html 唯一的標識一個裝置是一個基本功能,可以擁有很多應用場景,比如軟體授權(如何保證你的軟體在授權後才能在特定機
Android裝置唯一標識小記
許可權: <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 測試裝置: 小米pad2,HTCd816t(有卡),華為4c(無卡),vivo X6L
Android獲取裝置唯一ID
Android的開發者在一些特定情況下都需要知道手機中的唯一裝置ID。例如,跟蹤應用程式的安裝,生成用於複製保護的DRM時需要使用裝置的唯一ID。在本文件結尾處提供了作為參考的示例程式碼片段。 範圍 本文提供有關如何讀取各種Android裝置的 ID的介紹,用以使用標