monotouch Iphone推送通知使用的唯一标识符或mac地址

时间:2012-01-10 06:53:54

标签: ios5 xamarin.ios push-notification uniqueidentifier mac-address

我找到了一个带来唯一标识符但deprecated的方法。有没有其他方法可以使用monotouch软件识别iphone?如果是这样,Apple会接受授权使用推送通知吗?

我考虑过创建一个GUID并将其保存在手机上。不确定。

2 个答案:

答案 0 :(得分:3)

使用MAC地址可能是最简单的选择。您可以使用以下方式列出它们:

foreach (var i in NetworkInterface.GetAllNetworkInterfaces ())
        Console.WriteLine ("{0} {1}", i.Id, i.GetPhysicalAddress ());

然而,当读取MAC地址时,MonoTouch中有bug警告(已修复)。在发布应用程序之前,请确保您使用的是具有该修复程序的版本。

有关此主题的更多信息,请参阅此email thread

答案 1 :(得分:2)

解决方案是添加您自己的GUID(唯一标识符)。 首先在某处创建一个类。我选择了一个名为Domain的文件夹。 这是代码

using System;
using MonoTouch.Foundation;


public class Settings
{    

    private static string KEY_DEVICEID = "anyNameDeviceId";

    public static string DeviceId 
    {
        get
        {
            string result = NSUserDefaults.StandardUserDefaults.StringForKey(KEY_DEVICEID);

            if(string.IsNullOrEmpty(result))
            {
                result = Guid.NewGuid().ToString();
                NSUserDefaults.StandardUserDefaults.SetString(result, KEY_DEVICEID); 
                NSUserDefaults.StandardUserDefaults.Synchronize(); 
            }   

            return result;
        }

    }

}

然后你只需要在你的视图中阅读这段代码:

Console.WriteLine(Settings.DeviceId.toString());