monotouch Iphone уникальный идентификатор или адрес Mac, используемый push-уведомлением - PullRequest
2 голосов
/ 10 января 2012

Я нашел метод, который возвращает уникальный идентификатор, но его устарело . Есть ли другой способ уникальной идентификации iphone с помощью программного обеспечения monotouch? Если это так, будет ли Apple принимать разрешение на использование push-уведомлений?

Я думал о создании GUID и сохранении его на телефоне. Не уверен насчет этого.

Ответы [ 2 ]

3 голосов
/ 10 января 2012

Использование MAC-адреса, вероятно, самый простой вариант.Вы можете перечислить их, используя:

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

Однако имейте в виду, что при считывании MAC-адреса (MonoTouch) была (исправлена) ошибка .Прежде чем выпускать приложение, убедитесь, что вы используете версию с этим исправлением.

См. Эту ветку электронной почты для получения дополнительной информации по этому вопросу.

2 голосов
/ 13 января 2012

Решением является добавление вашего собственного 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());  
...