3

I am wondering if someone knows the best method for storing data in a global DB against a mobile device (iOS and Android)?

I am building an app that writes/retrieves information based on a query however I need to know if any of the records returned were sent from that device.

Basically the idea is that if a user submits some information (which is stored in the DB) they gain access to additional features of the app. When the app is launched, I will check the DB to see if they submitted information in the past and allow access to other areas.

I use local storage for the information they submitted but also store remotely so if the local storage becomes corrupted for any reason there is still a record of the information the user submitted.

The ID needs to be unique to the device as there could be 100 of users (hoping for millions) so the ID needs to be unique enough that it will never conflict with another device. Any information submitted will be available for retrieval by all other users.

Thanks :)

4

2 回答 2

3

在我看来,有三个选项:

1. 用户

您可以创建一个典型的用户名 + 密码用户方案并使用它来验证用户。这种方法的一个可能优势是用户可以从他们的任何设备登录(例如,在您的方法下,用户从他们的 iPhone 和 iPad 使用应用程序将有两个不同的视图 - 您可能不想要)。当然,这意味着强制应用程序的每个用户在您的系统中注册,这并不理想。

2. 应用安装

您可以通过让您的应用在应用第一次运行时生成UUID来唯一标识应用安装(您可以使用AS3 帮助程序库来生成 UUID)。您可以将此 UUID 存储在本地,并将其与应用程序发出的每个请求一起发送。这种方法的缺点是它不能唯一地识别设备 - 只是特定的应用程序安装。例如,如果用户删除应用程序,然后在稍后重新安装它,它现在将被视为新的唯一设备,即使用户在同一设备上。

3.设备

AIR 没有读取设备识别信息的内置方式。但是,您可以通过 AIR Native Extensions 检索设备信息,例如这个可以获取 MAC 地址和其他一些东西。在读取和存储诸如此类的设备信息时会涉及隐私问题和其他问题,因此您可能最好尝试将OpenUDID项目实现为 AIR 本机扩展,因为他们已经处理了所有此类问题。不幸的是,我对开发 ANE 的研究从未走得太远,所以我不确定将 OpenUDID 变成 ANE 会有多复杂或可行。

摘要:由于易于实施,我会推荐应用安装方法。如果您真的需要独特的设备并且担心多个应用安装情况,您将必须弄清楚如何使用本机扩展来获取您需要的信息。如果您决定更愿意通过用户而不是设备进行识别,请使用用户方法。

于 2013-01-03T03:33:15.773 回答
0

截至目前,我认为不可能使用空中移动设备来引导硬件设备。但是,您确实有几个选择。

如果 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 实现应该非常简单。

目标-c:[[UIDevice currentDevice] uniqueIdentifier]

安卓:TelephonyManager.getDeviceId()

如果您的应用程序需要任何类型的用户帐户或登录,最好的选择是将此设置存储在远程数据库中。

于 2013-01-03T03:23:02.650 回答