在Adobe AIR for iOS中获取唯一标识符(MAC地址、UDID等)

4

我正在尝试获取Adobe AIR应用程序在Android和iOS(iPad 2)上用户设备的网络适配器MAC地址。

在Android上它可以正常工作,但在iOS上不行。这是我使用的代码:

var vNetworkInterfaces:Vector.<NetworkInterface> = NetworkInfo.networkInfo.findInterfaces();

for each (var networkInterface:NetworkInterface in vNetworkInterfaces) {
    trace(networkInterface.hardwareAddress);
}

这在Android上可以工作,但在iOS上运行findInterfaces()时会出现以下错误:

错误#1009:无法访问空对象引用的属性或方法。

因此,似乎在iOS中未实现networkInfo.findInterfaces()。我尝试获取以下值:

NetworkInfo.isSupported

在Android中该值为true,在iPad 2中为false。因此,似乎iOS不支持NetworkInfo。

是否有其他方法在iOS上获取设备的唯一标识符?(它不必是MAC;我只想唯一地标识用户的设备)

2个回答

3

我正在尝试使用您发布的示例中提供的代码。当我调用(com.adobe.nativeExtensions.Networkinfo.NetworkInfo) NetworkInfo.networkInfo.findInterfaces()时,它说我正在尝试在空对象上调用方法,但是当我实际测试NetworkInfo.networkInfo时,它说它不是null。是的,我正在使用nativeExtensions NetworkInfo。 - WORMSS
2
链接已经失效,但是这里有一些关于使用本地扩展的信息:http://www.adobe.com/devnet/air/native-extensions-for-air/extensions/networkinfo.html - Pier

0

创建您自己的随机UID并将其保存在设备上。

每次应用程序启动时,请检查是否已经生成并存储了UID,以便您不会覆盖它。


谢谢你的回答。是的,这就是我正在做的。目前似乎生成一个随机代码是唯一的选择。 - OMA
1
可能也相关的是:http://venturebeat.com/2011/08/23/ios-5-udid-privacy/ - Breign
但是如果用户从 iOS 设备中删除了应用程序,UUID 也会被删除。我需要的是,当用户重新安装应用程序时,UUID 应该与第一次安装应用程序时相同。 - Evaristoyok
1
关于删除UUID(和任何本地存储的数据)。 如果您使用EncryptedLocalStore存储,则其将通过应用程序更新或删除持久存在。 - Breign
@Breign 我以为它会像文档中所说的那样在卸载后仍然存在,但在我的三星Galaxy Blaze上并非如此。Android 4.0.4。卸载应用程序后,整个encryptedlocalstore都消失了。 - jfaron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接