私は一日の始まりから答えを探していますが、私はまだ何をすべきかわかりません! 問題を説明するには 私のアプリケーションはGTasks APIを使用しています。これを行うには、ユーザーはGoogleアカウントを持っていなければなりません。私はそれをチェックするには、2つの方法があります。Android addAccount明示的に「com.google」タイプを使用しています
- を私はアカウントマネージャをインスタンス化し、そのようなアカウントがない場合
- 「com.google」のアカウントを探して、私はGoogleでユーザーがログオンするのWebViewを起動し、受け入れAPIを使用する
次に、アプリケーションをGTaskと同期させる必要があります。 webviewから抽出した情報から、AccountManagerを使用して「com.google」アカウントを作成しようとしましたが、「Caller UID is different ...」というエラーが常に表示されます。私は問題は "account-authenticator"から来なければならないことを知っています。なぜなら、 "accountType"はXMLファイルとアプリケーションで同じでなければなりませんが、別のアカウントタイプを使用すると完全に動作するからです(しかし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.plop」を使用すると、 「com.google」の代わりにanaythingを実行すると、本当にうまく動作します。
私の2つの質問は次のとおりです。 1. "com.google"アカウントタイプを使用できますか? 2.「com.google」以外のものを使用してauthTokenを取得できないのは正常ですか(使用しているアカウントはまだGoogleアカウントであり、Androidのように設定されていません)。
あなたの助けを借りて、Thxが事前に回答していれば、その答えがサイトにあったら私を許してください!