2012-05-10 20 views
7

Я использую адаптер синхронизации для моего приложения для синхронизации с бэкэндом appengine. В appengine я использую встроенный User api для аутентификации. Существует сообщение HERE, в котором говорится, как это сделать, однако приложение указано в учетной записи gmail. В идеале мое приложение будет указано в аккаунтах. Я не хочу спрашивать у пользователя имя пользователя и пароль, просто используйте существующую учетную запись google для аутентификации. Кто-нибудь делал это раньше??Android-адаптер синхронизации с appengine учетными записями пользователей Google

Обновление: Я работаю над этим, и похоже, что я могу реализовать службу аутентификации и сохранить имя учетной записи пользователя и оставить пароль пустой. В методах getAuthToken() я должен просто вернуть токен google auth. Будет ли сообщение после того, как я получу дальше ...

ответ

3

Возможно, вы неправильно поняли систему учетных записей Android. Когда вы перейдете в Настройки -> Учетные записи & Синхронизировать и добавить новую учетную запись, то вы видите список счетов типов. Часто существует связь между типами учетных записей и приложениями, например, учетные записи Facebook используются вместе с Facebook. Обычно вы добавляете новый тип учетной записи, если у вас есть другая бэкэнд-система для обработки подлинности и т. Д.

Если я правильно вас понимаю, вы используете учетные записи Google, но хотите, чтобы он отображался как ваш собственный тип учетной записи. Это звучит неправильно для меня. В конечном итоге вы переопределите обработку аккаунта Google, при этом не будете иметь большого значения. Я считаю, что пользователям проще, если вы просто соглашаетесь с тем, что предоставляет вам Google. При нажатии на учетную запись ваше приложение/сервис/контент-провайдер можно увидеть. Например, после installing "Tasks" by "Team Task" (отказ от ответственности: я не являюсь аффилированным лицом этой компании) они добавляют «Задачи синхронизации» в список данных & параметров синхронизации.

Но если вы действительно хотите создать свой собственный тип учетной записи, следуйте образцу Sample Sync Adapter. Найдите код Authenticator и связанные ресурсы (например, манифест, макет действий и т. Д.).

+0

Я понимаю, что вы говорите, но я буду синхронизировать данные, специфичные для моего приложения и счета пользователей , Имеет смысл поставить «задачи синхронизации» под учетной записью google, поскольку это данные Google, которые синхронизируются. Я использую учетные записи google для входа и использования имени пользователя, поскольку пользователю не нужно запоминать другой пароль, и это уменьшает мою рабочую нагрузку. – Patrick

+0

Я по-прежнему считаю, что было бы лучше добавить данные вашего приложения как часть учетной записи Google. Однако, поскольку вы не согласны, не стесняйтесь внедрять пользовательский аутентификатор для своего приложения. Это довольно легко, следуя примеру адаптера синхронизации примеров и использовать учетные записи Google в качестве серверной части (или, возможно, вы можете использовать приложение в качестве посредника для авторизации). Примерный аутентификатор адаптера синхронизации также использует приложение для бэкэнда, что облегчает вам работу. – andyandy

2

Это действительно возможно, и я реализовал это с успехом, но предупреждаю, что это немного головная боль.

Существует отличный учебник доступны под названием writing-an-android-sync-provider-part-1

... не забудьте проверить следовать в part 2

Вне этого есть также пример в образцах Android SDK под названием SampleSyncAdapter, который был бесценный в моем развитии.

С немного напряженной работой и много кофе, вы должны быть в состоянии получить эту работу;)

+0

Я уже понял, что это свой собственный, но все еще есть некоторые вещи, чтобы сгладить.У меня уже была аутентификация с настройками учетных записей google в моем приложении, поэтому мне действительно не нужно реализовывать getAuthToken и другие методы в AuthenticationService. Я просто хочу использовать функциональность syncadapter ... есть ли какой-нибудь код, который вы могли бы поделиться с службой аутентификации? как вы добавили учетные записи в свое приложение? – Patrick

+0

Весь код находится в примере примера SampleSyncAdapter, который я связал в ответе. Я раздели его на основы (и сломал его несколько раз), а затем вложил в мой код. Один полезный намек, хотя ... есть крошечный XML-файл, который требуется этой вещи, которую вы найдете в примере проекта ... убедитесь, что вы положили его в свою папку xml ... neraly сошел с ума, пытаясь решить эту проблему;) – Merlin

+0

Эта статья также может быть полезной [connection-the-dots-with-android-syncadapter] (http://ericmiles.wordpress.com/2010/09/22/connecting-the-dots-with-android-syncadapter/) – Merlin

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