2012-10-23 3 views
3

Я создал свою собственную учетную запись, и она отлично работает, чтобы добавить учетную запись и использовать ее в приложении.Редактирование пользовательских счетов

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

Я создал основы для этого, добавив свой собственный PreferenceScreen и связав его с помощью андроида: accountPreferences в моем XML-файле аутентификации учетной записи в соответствии с примером здесь: AbstractAccountAuthenticator.

В моем окне предпочтения я определяю намерение открыть свою активность, которая используется для ввода пользовательских данных для учетной записи.

<PreferenceScreen 
    android:key="edit" 
    android:title="Edit Account Details" 
    android:summary="Change System ID, user name, password etc."> 
    <intent 
     android:action="my.app.accountmanager.UserCredentialsActivity.ACCOUNT_SETUP" 
     android:targetPackage="my.app.accountmanager" 
     android:targetClass="my.app.accountmanager.UserCredentialsActivity" /> 
</PreferenceScreen> 

Мой вопрос, как я либо передать в качестве статистов в намерении или найти информацию об учетной записи для учетной записи, который я выбрал в меню Настройки/Учетные записи & Sync. Возможно иметь несколько учетных записей этого настраиваемого типа учетной записи, поэтому я не могу просто искать любую учетную запись этого типа. Мне нужны данные из выбранной учетной записи.

Мои мысли были примерно в этих областях:

  1. Включите что-то в XML, чтобы добавить дополнительные услуги. Не понимаю, как это возможно.
  2. Имейте цель для намерения быть моим классом AccountAuthenticator или службой аутентификации, но как я могу передать, что я хочу редактировать данные? Поскольку у AbstractAccountAuthenticator есть метод updateCredentials, который возвращает пакет с намерением моей активности ввода данных, возможно, это может работать, если я могу передать действие EDIT или что-то в этом роде.
  3. Переопределите какой-либо метод, чтобы создать собственное намерение с данными учетной записи.

Я надеюсь, что это можно сделать и как приложение Samsung и приложение Dropbox сделать это со счетов & синхронизации, хотя ни один не позволяют несколько учетных записей ...

ответ

1

Я думаю, что accountPreferences атрибут в AbstractAccountAuthenticator является скоро будет устаревшим. Если вы посмотрите на счетах в JB, если добавить несколько учетных записей, она будет отображаться как этот

  1. [email protected]
  2. [email protected]
  3. Предпочтение

Вместо

  1. [email protected] -> Предпочтение
  2. счета [email protected] -> Предпочтение

И если вы посмотрите на приложении Gmail, предпочтение (notifcation мелодия) для Gmail настраивается в самом приложении Gmail, и не может быть сконфигурировано со счетов & Страница настроек.

Таким образом, вы должны использовать атрибуты accountPreferences для предпочтений, которые являются общими для всех учетных записей.

Смежные вопросы