1

メソッドを使用して、AndroidアカウントマネージャーにGoogleアカウントを追加する機能をアプリケーションに追加しようとして
mAccountManager = AccountManager.get(getBaseApplicationContext());
Account account = new Account("sample.account", "com.google");
ac.addAccountExplicitly(account, "password", null);
いますが、例外を示しています

java.lang.SecurityException:呼び出し元のuid10117がauthenticatorのuidとは異なります


アプリケーションコードにアカウントを追加することは可能ですか(より正確には既存のGoogleアカウントにログインします)?どの方法を使用すればよいですか?

4

1 に答える 1

1

アカウントの種類と同じ UID を使用する必要がありますが、パッケージ (UID に変換されます) 「com.google」でアプリに署名することはできません。

次を使用して、利用可能なアカウントを取得できます。

manager.getAccountsByType("com.google"); // returns array

または API レベル 14 を使用すると、以下を呼び出すことができます。

AccountManager.newChooseAccountsIntent(null, null, new String[]{"com.google"}, false, null, null, null, null);

以前のバージョンでそれが必要な場合は、ソース コードを入手して、同じ仕組みをプロジェクトに実装できます。

Google アカウントを追加する唯一の方法は、ログイン アクティビティが送信されたときに送信されるインテントを取得し、同じインテントを送信してユーザーにアカウントの入力を求めることです。入ったら、私が言及した方法で詳細を取得できます。

于 2011-12-02T18:44:26.533 に答える