在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对于用于广告相关呼叫的设备是唯一的。
所有这些都可以通过distriqt ANE包中的Application native扩展来获得:
http://airnativeextensions.com/extension/com.distriqt.Application
特别是Application扩展: