是否有一种编程方式来获取移动设备的唯一标识符?

时间:2011-08-19 06:04:32

标签: iphone android windows-phone-7 uniqueidentifier unique-key

我需要一种方法来了解每个用户的唯一性,无论是iPhone,Android还是Windows Phone设备。如果没有普遍的方式,我想知道保存电话号码是否合法(即合法)。

有人有这方面的经验吗?

7 个答案:

答案 0 :(得分:12)

我不相信有一种跨平台的方式可以做到这一点。每个设备都有自己的SDK平台和API。

更新:对我之前的陈述进行略微更正,因为看起来PhoneGap可能会为您提供跨平台方法。

<强>的PhoneGap:

var deviceID = device.uuid;

请参阅:http://docs.phonegap.com/phonegap_device_device.md.html

以下是您在每个平台上的表现方式:

<强>机器人:

android.telephony.getDeviceId()

请参阅:http://developer.android.com/reference/android/telephony/TelephonyManager.html#getDeviceId%28%29

<强> iPhone:

[[UIDevice currentDevice] uniqueIdentifier]

请参阅:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIDevice_Class/Reference/UIDevice.html

Windows Phone 7:

DeviceExtendedProperties.GetValue("DeviceUniqueId")

请参阅:http://msdn.microsoft.com/en-us/library/ff941122%28v=VS.92%29.aspx

<强>黑莓:

FindDeviceForUserResult result=coreWebService.findDeviceForUser(userId, locale, true);
if (result.getFindDeviceForUserReturnStatus().getCode()!= FindDeviceForUserReturnStatusEnumType.SUCCESS)
{ 
       // handle any errors
}
if (result.getDevice() == null)
{ 
       // notify the user
}
int deviceID = result.getDevice().getDeviceId();

请参阅:http://docs.blackberry.com/en/developers/deliverables/7283/Find_BlackBerry_devices_628863_11.jsp

答案 1 :(得分:2)

如果你只关心移动设备,那么有一种叫做IMEI numner的东西。这应该是可访问的。法律含义我不确定。我想只要你不太个人化(标记给一个人),这应该不是问题。

答案 2 :(得分:1)

尝试获取IMEI号码。可能对你有用。

由于

答案 3 :(得分:1)

在Android中,您可以通过这种方式获取

TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
deviceid = telephonyManager.getDeviceId();

答案 4 :(得分:0)

我不能代表iPhone或Windows Phone 7,但要获得Android手机的唯一ID,我建议您查看此帖:

Is there a unique Android device ID?

如上所述,它不是100%可靠。

答案 5 :(得分:0)

对于iPhone      您可以在iPhone中使用以下代码找到移动设备ID。

 NSString *uniqueIdentifier = [[UIDevice currentDevice] uniqueIdentifier];
 NSLog("UniqueIdentifier:-->%@",uniqueIdentifier);

答案 6 :(得分:0)

这就是我为WindowsPhone做的事情

 void checkGuid()
    {
            object uniqueID;
            DeviceExtendedProperties.TryGetValue("DeviceUniqueId", out uniqueID);
            byte[] bID = (byte[])uniqueID;
            _clientID = Convert.ToBase64String(bID);
            Debug.WriteLine(_clientID);
            if (!IsolatedStorageSettings.ApplicationSettings.Contains("Guid"))
            {
                IsolatedStorageSettings.ApplicationSettings.Add("Guid", _clientID);
            }

    }

至于保留他们的电话号码,据我所知,微软自动向用户提供协议以响应他们检测到应用需要使用的内容,

您可以在用户启动应用程序时向用户提供某种类型的EULA,并要求他们允许使用其电话号码