android設備唯一id
『壹』 怎麼能知道安卓系統手機的DEVICE ID
可以按照以下方式進行查詢:
1、點擊電話,啟動撥號界面,然後輸入「*#*#8255#*#*」即可進入GTalk Service Monitor界面了,如圖所示。
拓展資料
1、DeviceNet協議是一個簡單、廉價而且高效的協議,適用於最低層的現場匯流排,例如:過程感測器、執行器、閥組、電動機起動器、條形碼讀取器、變頻驅動器、面板顯示器、操作員介面和其他控制單元的網路。可通過DeviceNet連接的設備包括從簡單的擋光板到復雜的真空泵各種半導體產品。
2、DeviceNet也是一種串列通信鏈接,可以減少昂貴的硬接線。DeviceNet所提供的直接互連性不僅改善了設備間的通信,而且同時提供了相當重要的設備級診斷功能,這是通過硬接線I/O介面很難實現的。
『貳』 如何查看安卓手機硬體ID
在撥號界面輸入 *#06#這個就是設備的唯一標識。
『叄』 如何獲取Android設備唯一識別碼
DEVICE_ID
這是Android系統為開發者提供的用於標識手機設備的串號,也是各種方法中普適性較高的,可以說幾乎所有的設備都可以返回這個串號,並且唯一性良好。
這個DEVICE_ID可以同通過下面的方法獲取:
TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); String DEVICE_ID = tm.getDeviceId();
它會根據不同的手機設備返回IMEI,MEID或者ESN碼,但在使用的過程中有以下問題:
非手機設備:最開始搭載Android系統都手機設備,而現在也出現了非手機設備:如平板電腦、電子書、電視、音樂播放器等。這些設備沒有通話的硬體功能,系統中也就沒有TELEPHONY_SERVICE,自然也就無法通過上面的方法獲得DEVICE_ID。
許可權問題:獲取DEVICE_ID需要READ_PHONE_STATE許可權,如果只是為了獲取DEVICE_ID而沒有用到其他的通話功能,申請這個許可權一來大才小用,二來部分用戶會懷疑軟體的安全性。
廠商定製系統中的Bug:少數手機設備上,由於該實現有漏洞,會返回垃圾,如:zeros或者asterisks
MAC ADDRESS
可以使用手機Wifi或藍牙的MAC地址作為設備標識,但是並不推薦這么做,原因有以下兩點:
硬體限制:並不是所有的設備都有Wifi和藍牙硬體,硬體不存在自然也就得不到這一信息。
獲取的限制:如果Wifi沒有打開過,是無法獲取其Mac地址的;而藍牙是只有在打開的時候才能獲取到其Mac地址。
獲取Wifi Mac地址:
獲取藍牙 Mac地址:
Sim Serial Number
裝有SIM卡的設備,可以通過下面的方法獲取到Sim Serial Number:
TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); String SimSerialNumber = tm.getSimSerialNumber();
注意:對於CDMA設備,返回的是一個空值!
ANDROID_ID
在設備首次啟動時,系統會隨機生成一個64位的數字,並把這個數字以16進制字元串的形式保存下來,這個16進制的字元串就是ANDROID_ID,當設備被wipe後該值會被重置。可以通過下面的方法獲取:
import android.provider.Settings; String ANDROID_ID = Settings.System.getString(getContentResolver(), Settings.System.ANDROID_ID);
ANDROID_ID可以作為設備標識,但需要注意:
廠商定製系統的Bug:不同的設備可能會產生相同的ANDROID_ID:9774d56d682e549c。
廠商定製系統的Bug:有些設備返回的值為null。
設備差異:對於CDMA設備,ANDROID_ID和TelephonyManager.getDeviceId() 返回相同的值。
Serial Number
Android系統2.3版本以上可以通過下面的方法得到Serial Number,且非手機設備也可以通過該介面獲取。
String SerialNumber = android.os.Build.SERIAL;
『肆』 如何獲取Android唯一標識
有很多場景和需求你需要用到手機設備的唯一標識符。例如,略。 在Android中,有以下幾種方法獲取這樣的ID。 1. The IMEI: 僅僅只對Android手機有效: TelephonyManager TelephonyMgr = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); String szImei = TelephonyMgr.getDeviceId(); // Requires READ_PHONE_STATE 採用此種方法,需要在AndroidManifest.xml中加入一個許可:android.permission.READ_PHONE_STATE,並且用戶應當允許安裝此應用。作為手機來講,IMEI是唯一的,它應該類似於 359881030314356(除非你有一個沒有量產的手機(水貨)它可能有無效的IMEI,如:0000000000000)。 2. Pseudo-Unique ID, 這個在任何Android手機中都有效 有一些特殊的情況,一些如平板電腦的設置沒有通話功能,或者你不願加入READ_PHONE_STATE許可。而你仍然想獲得唯一序列號之類的東西。這時你可以通過取出ROM版本、製造商、CPU型號、以及其他硬體信息來實現這一點。這樣計算出來的ID不是唯一的(因為如果兩個手機應用了同樣的硬體以及Rom 鏡像)。但應當明白的是,出現類似情況的可能性基本可以忽略。要實現這一點,你可以使用Build類: String m_szDevIDShort = "35" + //we make this look like a valid IMEI Build.BOARD.length()%10+ Build.BRAND.length()%10 + Build.CPU_ABI.length()%10 + Build.DEVICE.length()%10 + Build.DISPLAY.length()%10 + Build.HOST.length()%10 + Build.ID.length()%10 + Build.MANUFACTURER.length()%10 + Build.MODEL.length()%10 + Build.PRODUCT.length()%10 + Build.TAGS.length()%10 + Build.TYPE.length()%10 + Build.USER.length()%10 ; //13 digits 大多數的Build成員都是字元串形式的,我們只取他們的長度信息。我們取到13個數字,並在前面加上「35」。這樣這個ID看起來就和15位IMEI一樣了。 3. The Android ID , 通常被認為不可信,因為它有時為null。開發文檔中說明了:這個ID會改變如果進行了出廠設置。並且,如果某個Andorid手機被Root過的話,這個ID也可以被任意改變。 String m_szAndroidID = Secure.getString(getContentResolver(), Secure.ANDROID_ID); Returns: 9774d56d682e549c . 無需任何許可。 4. The WLAN MAC Address string, 是另一個唯一ID。但是你需要為你的工程加入android.permission.ACCESS_WIFI_STATE 許可權,否則這個地址會為null。 WifiManager wm = (WifiManager)getSystemService(Context.WIFI_SERVICE); String m_szWLANMAC = wm.getConnectionInfo().getMacAddress(); Returns: 00:11:22:33:44:55 (這不是一個真實的地址。而且這個地址能輕易地被偽造。).WLan不必打開,就可讀取些值。 5. The BT MAC Address string, 只在有藍牙的設備上運行。並且要加入android.permission.BLUETOOTH 許可權. BluetoothAdapter m_BluetoothAdapter = null; // Local Bluetooth adapter m_BluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); String m_szBTMAC = m_BluetoothAdapter.getAddress(); Returns: 43:25:78:50:93:38 . 藍牙沒有必要打開,也能讀取。 Combined Device ID 綜上所述,我們一共有五種方式取得設備的唯一標識。它們中的一些可能會返回null,或者由於硬體缺失、許可權問題等獲取失敗。 但你總能獲得至少一個能用。所以,最好的方法就是通過拼接,或者拼接後的計算出的MD5值來產生一個結果。 String m_szLongID = m_szImei + m_szDevIDShort + m_szAndroidID+ m_szWLANMAC + m_szBTMAC; // compute md5 MessageDigest m = null; try { m = MessageDigest.getInstance("MD5"); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } m.update(m_szLongID.getBytes(),0,m_szLongID.length()); // get md5 bytes byte p_md5Data[] = m.digest(); // create a hex string String m_szUniqueID = new String(); for (int i=0;i<p_md5data.length;i++) p="" { int b = (0xFF & p_md5Data[i]); // if it is a single digit, make sure it have 0 in front (proper padding) if (b <= 0xF) m_szUniqueID+="0"; // add number to string m_szUniqueID+=Integer.toHexString(b); } // hex string to uppercase m_szUniqueID = m_szUniqueID.toUpperCase(); 通過以上演算法,可產生32位的16進制數據:
『伍』 如何檢索Android設備的唯一ID
方法步驟(以安卓5.0為例)
一、依次點擊 設定---關於設備---狀態。
二、現在可以看到安卓設備的IMEI(國際移動設備識別碼)唯一編號。
三、或者用手機的撥號鍵盤輸入*#06# 可以彈出IMEI
『陸』 android怎麼獲取APP的唯一標識applicationId
有很多場景和需求你需要用到手機設備的唯一標識符。例如,略。
在Android中,有以下幾種方法獲取這樣的ID。
1. The IMEI: 僅僅只對Android手機有效:
TelephonyManager TelephonyMgr = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
String szImei = TelephonyMgr.getDeviceId(); // Requires READ_PHONE_STATE
採用此種方法,需要在AndroidManifest.xml中加入一個許可:android.permission.READ_PHONE_STATE,並且用戶應當允許安裝此應用。作為手機來講,IMEI是唯一的,它應該類似於 359881030314356(除非你有一個沒有量產的手機(水貨)它可能有無效的IMEI,如:0000000000000)。
2. Pseudo-Unique ID, 這個在任何Android手機中都有效
有一些特殊的情況,一些如平板電腦的設置沒有通話功能,或者你不願加入READ_PHONE_STATE許可。而你仍然想獲得唯一序列號之類的東西。這時你可以通過取出ROM版本、製造商、CPU型號、以及其他硬體信息來實現這一點。這樣計算出來的ID不是唯一的(因為如果兩個手機應用了同樣的硬體以及Rom 鏡像)。但應當明白的是,出現類似情況的可能性基本可以忽略。要實現這一點,你可以使用Build類:
String m_szDevIDShort = "35" + //we make this look like a valid IMEI
Build.BOARD.length()%10+ Build.BRAND.length()%10 + Build.CPU_ABI.length()%10 + Build.DEVICE.length()%10 + Build.DISPLAY.length()%10 + Build.HOST.length()%10 + Build.ID.length()%10 + Build.MANUFACTURER.length()%10 + Build.MODEL.length()%10 + Build.PRODUCT.length()%10 + Build.TAGS.length()%10 + Build.TYPE.length()%10 + Build.USER.length()%10 ; //13 digits
大多數的Build成員都是字元串形式的,我們只取他們的長度信息。我們取到13個數字,並在前面加上「35」。這樣這個ID看起來就和15位IMEI一樣了。
『柒』 如何查看自己安卓手機的Android Device ID
您好,1、打開撥號界面。
2、點擊電話,啟動撥號界面,然後輸入「*#*#8255#*#*」即可進入GTalkServiceMonitor界面了。
(7)android設備唯一id擴展閱讀:
AndroidID用於唯一識別一部設備的一次刷機行為,雖然不能完全確定該設備的唯一性(真的唯一性是用IMEI號的),但是可以很大程度上過濾重復設備。
這是移動互聯網廣告行業,尤其是CPI廣告的基礎。設備ID非常重要。CPI廣告是根據實際安裝數量計費的,廣告商可以使用androidid來排除重復安裝。傳遞一個AndroidID直接影響到某些廣告是否會被放置在某些位置。
在RTB行業中,有很多提供數據的第三方公司,他們根據AndroidID買賣數據,將各種數據對應給用戶。
『捌』 如何獲取android設備唯一識別碼
您可以通過下面的方法獲得手機的唯一標示,希望能幫到您:
public String getIMEI(View view) {
//獲取手機IMSI,imei
TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String imsi = mTelephonyMgr.getSubscriberId();//sim卡的唯一標識
String imei = mTelephonyMgr.getDeviceId();//設備唯一標識
return imei;
}
『玖』 如何為每部Android手機生成一個唯一的ID
這種方法是,以一些特定的信息為基礎,生成設備的唯一標識。
首先,演算法角度,常用的有UUID、摘要兩種。這兩種演算法都是以特定的數據為基礎,生成一個唯一的、固定長度的字元串。這里選擇UUID。
其次,計算的基礎數據,建議選擇divice_id和android_id。原因是,1)這兩個標識雖然不能抵抗wipe操作,但受用戶的行為影響比較小;2)如果正常獲取,都是唯一的;③如果不能正常獲取,結果也是固定的,不會頻繁變化。
再次,優先順序的考慮。從這兩個標識的缺點考慮。
1)device_id。
①不能標識非手機設備,例如Pad。
②許可權問題,因為用戶的反感。
③獲取異常,廠商定製系統中存在的bug,致使返回結果為空,或者為一串「0」或「*」。
④對於雙卡雙待手機,會返回兩個device_id。
2)android_id。
①Android2.3以前,系統Bug,導致不同的設備產生相同的結果:9774d56d682e549c。
②有些可能返回null。
③設備差異:對於CDMA設備,與device_id返回相同的值。
綜合考慮,device_id不能標識某些pad,以及用戶的許可權問題,是我們不能接受的,所以優先使用android_id。對於android_id返回為null的情況,再考慮使用device_id。
最後,當android_id和device_id都返回異常的情況,我們可以隨機生成一個UUID。
『拾』 如何生成唯一的Android設備ID
Android的開發者在一些特定情況下都需要知道手機中的唯一設備ID。例如,跟蹤應用程序的安裝,生成用於復制保護的DRM時需要使用設備的唯一ID。
范圍
本文提供有關如何讀取各種Android設備的 ID的介紹,用以使用標識號。本文假定用戶已經安裝了Android以及開發應用程序必要的工具。並且,本文假定用戶已了解Android的基本知識。
簡介在搭載Android操作系統的設備中,已經存在好幾種類型的設備標識號。先前的所有Android設備都具有電話功能,因此查找每部設備硬體唯一的IMEI,MEID,或ESN也很容易。但僅能使用Wifi的設備或音樂播放器沒有電話硬體,所以沒有這種類型的唯一標識號。本文闡述了如何讀取不同Android設備的標識號。檢索Android設備ID各種方式