[英]Assigning a unique ID every time android app is opened
我正在創建一個應用程序,其主要目的是收集實驗數據,並在每次實驗結束時將其上傳到數據庫。 我想每次運行實驗(打開應用程序或重新啟動實驗)時分配一個唯一的標識符。
我不能使用僅設備唯一的標識符,因為在每個設備上都會進行多次實驗。
我無法根據實驗時間(或其他某種形式的順序分配)使用標識符,因為有可能多個設備同時提交其數據。
目前,我的解決方案是每次運行實驗時分配一個隨機數,該數將根據數據庫進行檢查並重新計算是否存在。 這不是完美的,因為有可能,但很少有,兩個實驗將同時運行並被分配(偶然)相同的標識符。
每次運行實驗時如何分配唯一的標識符?
您可以使用UUID 。 從文檔:
UUID is an immutable representation of a 128-bit universally unique identifier
幾乎同時發生2個實驗(最多幾毫秒)的可能性為零,更不用說可以從系統中獲得的納秒了。 因此,您可以輕松地依靠它們的獨特性。 如果這樣讓您感到不舒服,請將設備ID與以納秒為單位的時間連接起來進行實驗,這將使其碰撞的可能性更低。 如果要絕對瘋了。 建立一台服務器,該服務器將具有其已生成的所有數字的哈希圖,並將為每個實驗應用實例重新生成一個新的哈希圖。 如果您願意,我可以給您提供一種算法,使其高效。
您還可以使用GUID https://www.guidgenerator.com/ ,這基本上等同於隨機選擇一個0到2 ^ 128-1之間的數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.