Android device ID
- 需要是reliable, stable, uniqie的device id
- 在手機易主或Factory resets後,應該要改成新的
-> TelephonyManager.getDeviceId() 就不行,它會回傳IMEI for GSM, ESN for CDMA phones - 所以合理的作法是 track app installation
- google phone app?
- 不是手機的硬體沒有這些id。
- Device data wipes或factory resets不會改變這些值。
- 需要 READ_PHONE_STATE 的權限。
- 有些手機存在bug,會回傳garbage,zeros or asterisks。
其實就是這篇的翻譯XD 2011的文章了…
Identifying App Installations
如何辨認unique
device?
怎麼track
installation?
在app中自創一個Installation class
但如果需要硬體編號怎麼辦?
頗為棘手,當以前Android都是手機時,可以用TelephonyManager.getDeviceId(),能得到電話的 IMEI, MEID, or ESN,但有這些問題:
用MAC address?
不推薦,因為不是沒有device都有WiFi,而且如果Wifi不是turn
on,硬體有可能不會回傳MAC address。
Android
OS Serial Number?
使用Android_ID
機器第一次開機時產生Setting.Secure.ANDROID_ID,一個64-bit數字,並在device wiped時reset。但是在Android 2.2無法100%可靠。而且有一隻熱門的手機,每隻的ANDROID_ID是相同的。
結論
大部份的application,需要辦認的是particular installation,不是physical
device,可以簡單地解決。
有很多理由讓我們避免辨認某個device。如果真的需要辨認,最好的方式是用ANDROID_ID。
Comments
Post a Comment