【问题标题】:AIR 3.5 Mobile project device IDAIR 3.5 移动项目设备 ID
【发布时间】:2013-01-02 23:41:17
【问题描述】:

我想知道是否有人知道针对移动设备(iOS 和 Android)在全局数据库中存储数据的最佳方法?

我正在构建一个基于查询写入/检索信息的应用,但是我需要知道返回的任何记录是否是从该设备发送的。

基本上,这个想法是,如果用户提交一些信息(存储在数据库中),他们就可以访问应用程序的其他功能。当应用启动时,我会检查数据库,看看他们过去是否提交过信息,并允许访问其他区域。

我使用本地存储来存储他们提交的信息,但也远程存储,因此如果本地存储因任何原因损坏,用户提交的信息仍然会记录。

ID 需要对设备唯一,因为可能有 100 个用户(希望有数百万用户),因此 ID 需要足够唯一,以免与其他设备发生冲突。提交的任何信息都可供所有其他用户检索。

谢谢:)

【问题讨论】:

标签: actionscript-3 air


【解决方案1】:

在我看来有三个选项:

1.用户

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

2。应用安装

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

3.设备

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

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

【讨论】:

    【解决方案2】:

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

    如果 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()

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

    【讨论】:

      猜你喜欢
      • 2019-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-08
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      • 1970-01-01
      相关资源
      最近更新 更多