2013-11-05 31 views

回答

1

由於JDK 1.6開發人員能夠通過類NetworkInterface訪問網卡細節

要提取系統的MAC地址,有一對夫婦提供良好的教程在這裏:

這些教程展示傳統方式以及現代的方式訪問網卡。

現在,對於UDID部分,我假定它是一個Android設備有一個幾條路,以什麼可以用作設備的唯一標識符。這些選擇通常縮小到:

  • MAC address
  • Serial Number
  • ANDROID_ID

這個它是更好地使用ANDROID_ID作爲UDID因爲:

  1. 儘管如此可能可以從設備的WiFi或藍牙硬件檢索Mac地址,但不建議這樣做,因爲並非所有設備都具有WiFi。另外,如果WiFi未打開,硬件可能不會報告Mac地址。

  2. 由於Android 2.3(「薑餅」),這是通過android.os.Build.SERIAL可用。沒有電話的設備需要在這裏報告唯一的設備ID;有些手機也可能這樣做。

更具體地,ANDROID_ID是生成和設備第一次啓動時,存儲一個64位的量。

  1. 它不是在Android 2.2之前(「升級Froyo」)的釋放100%可靠:當所述設備處於wiped.ANDROID_ID似乎是唯一的設備標識符一個很好的選擇,但也有缺點,它被複位。
  2. 在主流製造商的流行手機中至少有一個廣泛觀察到的錯誤,其中每個實例都具有相同的ANDROID_ID。

參考文獻: