Лучший способ получить имя пользователя Android Market пользователя

В целях лицензирования мне нужно знать учетную запись Android Market моих пользователей, которая, я полагаю, совпадает с основной учетной записью на их устройстве. Я не могу найти метод, который делает именно это, поэтому вместо этого я запрашиваю список учетных записей Google пользователя и использую первый:

    AccountManager manager = AccountManager.get(context);
    Account[] accounts = manager.getAccountsByType("com.google");
    String account = "";

    if (accounts != null && accounts.length > 0)
        account = accounts[0].name;

    return account;

Кажется, этот подход работает, но мой вопрос: гарантированно ли первая учетная запись в массиве, возвращаемом AccountManager.getAccountsByType("com.google"), всегда будет такой же, как их учетная запись Android Market, или есть какие-либо (нетривиальные) исключения?

Заранее спасибо...


person Barry Fruitman    schedule 01.11.2011    source источник
comment
пользователь по-прежнему сможет изменить свой основной адрес электронной почты, войти в Android Market, поэтому использование учетной записи Market для лицензирования не так эффективно   -  person Optimus    schedule 02.11.2011
comment
также я не думаю, что есть реальный способ подтвердить, погода или нет, учетная запись является первичной   -  person Optimus    schedule 02.11.2011
comment
Единственный способ изменить основную учетную запись — стереть устройство, поэтому я не беспокоюсь об этом. Мое лицензирование должно быть достаточно безопасным, но я знаю, что ни один метод не идеален.   -  person Barry Fruitman    schedule 02.11.2011
comment
Я столкнулся с той же проблемой, вы нашли решение? Мне просто нужен uid, который может быть адресом электронной почты их учетной записи на рынке, но я не знаю, как его обеспечить.   -  person citizen conn    schedule 25.11.2011
comment
Извините, нет, я не нашел лучшего решения.   -  person Barry Fruitman    schedule 27.11.2011


Ответы (1)


Раньше считалось, что первая учетная запись com.google, зарегистрированная на телефоне, была основной учетной записью и, соответственно, учетной записью, используемой Android Market.

Новые версии Android отказались от концепции основной учетной записи, а более новые версии Android Market также поддерживают несколько учетных записей.

Таким образом, больше нет никакой разницы между учетными записями на телефоне. Все они могут использоваться Android Market одновременно, и приложение может принадлежать любой из этих учетных записей (и, возможно, даже нескольким, если пользователь покупал приложение несколько раз).

person Trevor Johns    schedule 01.11.2011
comment
Вы знаете, с какой версии? Спасибо. - person Barry Fruitman; 02.11.2011
comment
Это было изменено в Honeycomb (Android 3.0). - person Trevor Johns; 02.11.2011