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

时间:2013-08-30 12:02:53

标签: android ios actionscript-3 mobile 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 project device ID

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

1 个答案:

答案 0 :(得分:4)

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

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

特别是应用程序扩展:

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