3

一日の始まりから答えを探していますが、まだどうしたらいいのかわかりません!問題を説明するには:私のアプリケーションはGTasksAPIを使用しています。これを行うには、ユーザーはGoogleアカウントを持っている必要があります。それを確認する方法は2つあります。

  1. アカウントマネージャーをインスタンス化し、そのようなアカウントがない場合は「com.google」アカウントを探します
  2. ユーザーがGoogleにログオンし、APIの使用を受け入れるWebビューを起動します。

次に、アプリケーションをGTaskと同期する必要があります。Webビューから抽出した情報から、AccountManagerを使用して「com.google」アカウントを作成しようとしましたが、常に「発信者UIDが異なります...」というエラーが発生します。「accountType」はXMLファイルとアプリで同じである必要があるため、問題は「account-authenticator」から発生するはずですが、別のアカウントタイプを使用すると完全に機能するため、そうではないと思います。 (ただし、GTaskからauthTokenを取得できません)。

だから、ここに私のコードがあります:

Authenticator.xml:

<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android"
    android:accountType="com.google"
    android:icon="@drawable/miniicon"
    android:smallIcon="@drawable/miniicon"
    android:label="@string/app_name"
    android:accountPreferences="@xml/preferences"
 />

アカウントタイプの定義:

 public class AuthenticationService extends Service {
     public static final String ACCOUNT_TYPE = "com.google";

クラスでの使用方法:

 AccountManager manager = AccountManager.get(activity);

 final Account account = new Account(login, AuthenticationService.ACCOUNT_TYPE);
 manager.addAccountExplicitly(account, password, new Bundle());

「com.google」の代わりに「com.plop」などを使用すると、問題なく動作します。

したがって、私の2つの質問は次のとおりです。1。「com.google」アカウントタイプを使用できますか?2.「com.google」以外を使用してauthTokenを取得できないのは正常ですか(使用されているアカウントはまだGoogleアカウントであり、Androidではそのように設定されていません)。

よろしくお願いします。サイトに回答があった場合はご容赦ください。

4

1 に答える 1

2

私は自分の質問に答えました:それは私が望んでいた方法では不可能です。「com.google」アカウントタイプを使用して「addAccount」機能を使用する必要があります。これにより、Androidシステムで使用されるアカウント作成アクティビティがポップされます。次に、GTasksAPIを使用してすべてが正常に行われます。

于 2011-12-23T11:32:41.550 に答える