在Air中存储信息并唯一识别移动设备,跨平台

我需要为每个移动设备设置一个标识符,该标识符将在所有请求中发送到服务器。 安全性不是一个大问题 (我们不希望用户必须登录)。 但是,没有因任何违反条款而拒绝申请。

我最初看的是https://code.google.com/p/actionscript-uuid/ ,看起来好像很容易实现:

import com.laiyonghao.Uuid; var uuid:Uuid = new Uuid(); trace(uuid); 

拥有与安装相关的id,而不是设备特定的id不会是一个大问题,除了我们将要执行应用程序的第2版,我们需要具有相同的uid。

使用共享对象在android / ios上保存状态信息会有任何问题吗?

如果应用程序更新,它仍然可以访问相同的共享对象吗?

我相信苹果现在会拒绝任何试图使用MAC地址的应用程序。

我找到了openudid:

http://blog.appsfire.com/with-udid-nearing-its-demise-leading-industry-players-turn-to-openudid/

https://github.com/ylechelle/OpenUDID

我没有看到使用此编写的本机扩展。 具有唯一标识符设备而不是特定安装是优先的,只要它不是太耗时。

是否有可用的本机扩展,允许访问跨平台工作的设备特定唯一标识符?

我发现以下问题与AIR 3.5 Mobile项目设备ID非常相似

我的另一个想法是我们将在我们的应用程序中使用推送通知,它可以为我们提供一个很好的标识符,如果我不确定推送通知被禁用会发生什么。

在Android上,您应该使用ANDROID_ID属性。 它是首次启动设备时由android生成的唯一标识符。 它可能会在某些情况下发生变化,但通常是最好的唯一ID。

http://developer.android.com/reference/android/provider/Settings.Secure.html

在iOS下,您有2个选项,广告标识符和供应商标识符。

供应商标识符是唯一的,但同一开发人员的应用程序之间相同。 而identifierForAdvertising对于用于广告相关呼叫的设备是唯一的。

https://developer.apple.com/library/ios/documentation/uikit/reference/UIDevice_Class/Reference/UIDevice.html

所有这些都可以通过distriqt ANE包中的Application native扩展来获得:

http://airnativeextensions.com/extension/com.distriqt.Application

特别是Application扩展:

http://docs.airnativeextensions.com/application/docs/