7

アカウント(ユーザーのGmailメールIDを含む)を見つける方法と、Gmailアカウントをフィルタリングする方法を知っています。

AccountManager am = AccountManager.get(context);
        Account[] accounts = am.getAccounts();
        ArrayList<String> googleAccounts = new ArrayList<String>();
        for (Account ac : accounts) {
            String acname = ac.name;
            String actype = ac.type;
            //add only google accounts
            if(ac.type.equals("com.google")) {
                googleAccounts.add(ac.name);
            }
            Log.d(TAG, "accountInfo: " + acname + ":" + actype);
        }
        return googleAccounts;

私が知りたいのは、Android マーケットに関連付けられている Gmail アカウントを見つける方法です。AndroidフォンからGmailアカウントを削除しようとすると、このメッセージが表示されます ここに画像の説明を入力

ただし、Android マーケットに関連付けられている Gmail アカウントを削除しようとすると、次のメッセージが表示されます (前のメッセージでアカウントの削除を押した場合)。

ここに画像の説明を入力

助けてくれてありがとう。

4

3 に答える 3

3

私が見つけたものから、デバイスに追加された最初の Google アカウントは、Android マーケットに関連付けられているプラ​​イマリ Google アドレスです。また、デバイスに追加された順序で Google アカウントを取得します。したがって、accounts[0] が最初に追加されるメール ID になります。

String marketAssociatedEmailId = "";
Account[] accounts = AccountManager.get(context).getAccountsByType("com.google");
if(accounts.length > 0) {
  marketAssociatedEmailId = accounts[0].name;
}

繰り返しますが、これについてはよくわかりません。さまざまなシナリオで自分でテストする必要があります。

于 2014-05-23T05:41:24.080 に答える
2

ダイアログ

ここに画像の説明を入力

これは、Google アカウント認証システムでのAbstractAccountAuthenticator#getAccountRemovalAllowedの実装が原因です。

の実装を直接呼び出すAbstractAccountAuthenticatorことは、システムのみのアクセス許可によって妨げられてandroid.permission.ACCOUNT_MANAGERいるため、自分でこれを見つけるのは難しいでしょう。

于 2012-05-22T09:16:04.593 に答える
0

「アソシエーション」は Android マーケット/Google Play アプリケーションによって管理されますが、使用するアカウントを通知するパブリック API はないと思います。さらに、最近のバージョンでは複数のアカウントを使用できるため、電話上の任意の Google アカウントを Market/Play ストア アプリで使用できる可能性があります。

なぜあなたはこれをやろうとしているのですか?アカウントを「安全に」削除できるようにするには? ユーザーには適切なエラー メッセージが表示されるため、アカウントを削除するかどうかを決定できるはずです。

于 2012-05-18T06:00:49.310 に答える