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

问题描述:

我找到了一种方法,它带有唯一标识符,但它的deprecated。有没有其他的方式来使用monotouch软件来识别iPhone?如果是这样,Apple会否接受授权使用推送通知?monotouch Iphone唯一标识符或推送通知使用的mac地址

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

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

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

但是被警告,有(它是固定的),在MonoTouch的一个bug读取MAC地址时。确保您在发布应用程序之前使用了具有该修复程序的版本。

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

+0

我解决它加入我自己的GUID(唯一标识符)。 – user1132537 2012-01-13 09:00:10

解决方案是添加您自己的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());