簡體   English   中英

android.os.Build.SERIAL是唯一的嗎?

[英]Is android.os.Build.SERIAL unique?

我想使用適用於手機和平板電腦的Android設備的唯一ID。 (IMEI不適用於沒有SIM卡設備,有時MAC地址返回null)

我不確定android.os.Build.SERIAL是否唯一。

有誰知道這個?

感謝和問候。

是的,但請注意,它僅在API級別9中添加,並且可能不會出現在所有設備上。 要在早期平台上獲取唯一ID,您需要閱讀類似MAC地址或IMEI的內容。

通常,嘗試閱讀所有可能的ID,並使用可用的任何ID。 請參閱此文章以獲取指導

您可以使用Build serial和android ID來創建自己的唯一ID。

String serial =    Build.SERIAL;
String android_id =Secure.getString(context.getContentResolver(),
                   Secure.ANDROID_ID);

String myKey=serial +android_id ;

Serial僅在API中公開:9。 但你可以使用反射在舊版本中獲得它。 然而,文檔提到“如果可用”,所以我想不要依賴它。

String deviceSerial = (String) Build.class.getField("SERIAL").get(
                    null);

我認為對於唯一身份證你應該使用android Id。 以下是獲取Android ID的代碼。

String android_id = Secure.getString(this.getContentResolver(),
            Secure.ANDROID_ID);
Log.d("Android","Android ID : "+android_id);

如果它在那里,那么它應該是獨一無二的。 但無法保證此屬性已設置。 它也是API 9.不幸的是,沒有簡單的方法可以唯一地識別設備。 一些屬性如SERIAL 可以存在,其他屬性如ANDROID_ID為非唯一,其他一些像MAC取決於WIFI的存在或其狀態(如果wifi模塊關閉,您可能無法讀取其MAC)。 有些像IMEI甚至無法讀取設備有手機模塊。 因此,最好的方法是盡可能多地收集數據,並嘗試構建您最有可能考慮使用唯一設備ID的內容

MAC,IMEI和SERIAL的組合怎么樣?

你只需要處理它們都可能是非存在的事實。 在沒有SIM卡的舊手機上。

我發現奇怪的是MAC會返回null。 這不應該是可能的,因為移動設備沒有MAC是沒有意義的。

可能有2個MAC地址,但在某些情況下它們可能無法訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM