如何使用默认的谷歌帐户注册GCM没有帐户选择器选项或任何用户交互机器人

时间:2016-08-26 13:18:23

标签: android google-cloud-messaging google-account

第一次注册GCM时,Android设备需要一个Google帐户。目前,我正在使用帐户选择器意图在注册GCM时从用户中选择Google帐户。如果用户有多个帐户,则会要求用户选择帐户以成功完成GCM注册。

那么,有没有选项可以自动选择默认帐户而不显示任何帐户选择器意图或手动从用户端选择任何选项?

1 个答案:

答案 0 :(得分:1)

花了一些时间后,我找到了一个有效的方法,只需使用下面的代码来获取默认的Google帐户ID:

 private String getPrimaryEmailID(Context context) {
        AccountManager accountManager = AccountManager.get(context); 
        Account account = getAccount(accountManager);

        if (account == null) {
            return null;
        } else {
            return account.name;
        }
    }

       private Account getAccount(AccountManager accountManager) {
            Account[] accounts = accountManager.getAccountsByType("com.google");
            Account account;
            if (accounts.length > 0) {
                account = accounts[0];
            } else {
                account = null;
            }
            return account;
        }

它将为用户提供默认的Google帐户ID,而无需任何帐户选择器意图弹出窗口或任何其他用户交互/选择。

此外,您需要在清单文件中添加它:

<uses-permission android:name="android.permission.GET_ACCOUNTS" />