我正在开展一个项目,我必须在其中显示帐户选择器,以便用户可以选择存储在其设备中的电子邮件帐户。问题是我已经弃用了AccountPicker.newChooseAccountIntent
。
是否有其他方法可以显示帐户选择器而不是 手动获取电子邮件,并在自定义视图中显示
现在我正在使用:
Intent googlePicker = AccountPicker.newChooseAccountIntent(null, null,
new String[] { GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE }, true, null, null, null, null);
startActivityForResult(googlePicker, PICK_ACCOUNT_REQUEST);
答案 0 :(得分:2)
也许会对某人有所帮助,请在2020年根据docs使用此功能:
Intent intent =
AccountPicker.newChooseAccountIntent(
new AccountChooserOptions.Builder()
.setAllowableAccountsTypes(Arrays.asList("com.google"))
.build());
startActivityForResult(intent, SOME_REQUEST_CODE);
您还可以使用AccountManager:
Intent intent;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
intent = AccountManager.newChooseAccountIntent(null, null,
new String[] { GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE }, null, null, null, null);
} else {
intent = AccountManager.newChooseAccountIntent(null, null,
new String[] { GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE }, false, null, null, null, null);
}
startActivityForResult(intent, SOME_REQUEST_CODE);
您可以从 authAccount 邮件中获取选定的电子邮件:
protected void onActivityResult(final int requestCode, final int resultCode,
final Intent data) {
if (requestCode == REQUEST_CODE_EMAIL && resultCode == RESULT_OK) {
String accountName = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
// Do what you need with email
}
super.onActivityResult(requestCode, resultCode, data);
}
答案 1 :(得分:1)
不建议将User u = new User();
Disposable disposable = RxUser.observe(u).subscribe((user) -> {
// will be called for changes
});
u.setFirstName("hello");
布尔值添加为alwaysPromptForAccount
的参数。现在,新方法编写如下:
newChooseAccountIntent
。
因此,就您而言,您的代码将如下所示:
newChooseAccountIntent(Account, List, String[], String, String, String[], Bundle)
答案 2 :(得分:0)
类似于标准框架帐户选择器的通用帐户选择器 在ICS中引入:newChooseAccountIntent()。
因此,您可以使用newChooseAccountIntent()课程中提供的AccountManager方法。它具有相同的输入和输出。
答案 3 :(得分:-1)
折旧并不意味着您无法使用它。谷歌将把代码保存在他们的android操作系统中,因为有些应用程序非常古老,他们仍然使用折旧代码。