我需要为每个移动设备设置一个标识符,该标识符将在所有请求中发送到服务器。 安全性不是一个大问题(我们不希望用户必须登录)。但是,没有因任何违反条款而拒绝申请。
我最初看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
我的另一个想法是我们将在我们的应用程序中使用推送通知,这可能为我们提供了一个很好的标识符,如果我不确定推送通知被禁用会发生什么。
答案 0 :(得分:4)
在Android上,您应该使用ANDROID_ID属性。它是首次启动设备时由android生成的唯一标识符。它可能会在某些情况下发生变化,但通常是最好的唯一身份。
http://developer.android.com/reference/android/provider/Settings.Secure.html
在iOS下,您有2个选项,广告标识符和供应商标识符。
供应商标识符是唯一的,但来自同一开发人员的应用程序之间相同。而identifierForAdvertising对于用于广告相关呼叫的设备是唯一的。
所有这些都可以通过distriqt ANE包中的Application native扩展来获得:
http://airnativeextensions.com/extension/com.distriqt.Application
特别是应用程序扩展: