2013-01-02 86 views
3

我想知道是否有人知道在移動設備(iOS和Android)上存儲全球數據庫中數據的最佳方法?AIR 3.5移動項目設備ID

我正在構建一個基於查詢寫入/檢索信息的應用程序,但是我需要知道是否有任何返回的記錄是從該設備發送的。

基本上這個想法是,如果用戶提交一些信息(存儲在數據庫中),他們可以訪問應用程序的其他功能。當應用程序啓動時,我會檢查數據庫,看他們是否過去提交了信息並允許訪問其他區域。

我使用本地存儲提供他們提交的信息,但也遠程存儲,所以如果本地存儲由於任何原因被破壞,仍然存在用戶提交的信息記錄。

設備的ID必須是唯一的,因爲可能有100個用戶(希望達到數百萬),因此ID需要足夠獨特以至於不會與其他設備發生衝突。所有提交的信息將可供所有其他用戶檢索。

謝謝:)

+0

我正在尋找ANE提供此功能,建議使用Distriqt ANE http://stackoverflow.com/questions/18532474/storing-information-on-and-uniquely-identifying-a-mobile-device -Cross平臺 – Tom

回答

0

截至目前我不認爲它可能得到硬件設備GUID使用空中移動。但是你有幾個選擇。

如果MAC地址足夠好,那麼有一個ANE可以讓你在iOS和Android上抓取它。

http://www.adobe.com/devnet/air/native-extensions-for-air/extensions/networkinfo.html

以及如何使用它

http://cookbooks.adobe.com/post_Getting_NetworkInfo_from_both_Android_and_iOS-19473.html

你也可以寫你自己的ANE一個例子,它應該是很簡單的包裝Android和iOS的實現。

的Objective-C:[[UIDevice currentDevice] uniqueIdentifier]

安卓:TelephonyManager.getDeviceId()

如果您的應用程序需要任何用戶帳戶或登錄最好的辦法是存儲在遠程數據庫此設置。

3

有三個選項,我看到它:

1.用戶

您可以創建一個典型的用戶名+密碼的用戶方案,並用它來驗證用戶。這種方法的一個可能的優點是用戶可以從他們的任何設備上登錄(例如,根據你的方法,用戶使用iPhone和iPad上的應用程序將會有兩種不同的視圖 - 你可能不需要)。當然,這意味着強制應用程序的每個用戶都在系統中註冊,這並不理想。

2.應用程序安裝

可以唯一地標識一個應用程序通過將您的應用產生UUID第一次應用程序運行安裝(你可以使用一個AS3 helper library生成UUID)。您可以在本地存儲此UUID,並將其與應用程序發出的每個請求一起發送。這種方法的缺點是它不能唯一識別設備 - 只有特定的應用程序安裝。例如,如果用戶刪除了應用程序並稍後重新安裝該應用程序,則即使該用戶位於同一設備上,該應用程序現在也會被視爲新的唯一設備。

3.設備

AIR不具有讀取設備識別信息內置方式。但是,您可以通過AIR Native Extensions檢索設備信息,例如this one可以獲取MAC地址和其他一些內容。在閱讀和存儲這些設備信息時存在隱私問題和其他問題,因此您最好嘗試將OpenUDID項目作爲AIR Native Extension實施,因爲他們已經處理了所有這些問題。不幸的是,我從來沒有考慮過開發ANE,因此我不確定將OpenUDID轉換爲ANE是多麼複雜或是否可行。

總結:由於易於實施,我會推薦應用程序安裝方法。如果您真的需要獨特的設備並擔心多個應用安裝案例,您將不得不解決如何使用本機擴展來獲取所需的信息。如果您決定寧願用戶而不是設備來識別,請使用用戶方法。