gpt4 book ai didi

android - 很好地获取 Android 所有者的电子邮件地址

转载 作者:IT王子 更新时间:2023-10-28 23:55:45 28 4
gpt4 key购买 nike

我希望允许用户在不输入的情况下向我提供他们的电子邮件地址。理想情况下,应该有一个文本字段,用户可以在其中输入电子邮件地址或按下按钮来自动填充它。

在前面的问题中,Roman Nurik suggests using an AccountManager处理这个,但这需要我的应用程序使用 GET_ACCOUNTS 权限;然后我的应用程序可以访问设备上所有用户的帐户,包括他们的 Facebook/Twitter 帐户。对于我想要的,这个权限似乎太宽泛了。

有没有更好的方法来处理这个不需要授予我的应用如此繁重的权限?

最佳答案

我知道我来得太晚了,但这可能对其他人有用。

我认为现在自动填充电子邮件字段的最佳方法是使用 AccountPicker

如果您的应用拥有 GET_ACCOUNTS 权限并且只有一个帐户,您可以立即获得。如果您的应用没有它,或者如果有多个帐户,用户会收到提示,以便他们可以授权或不授权该操作。

您的应用需要包含 Google Play Services auth library com.google.android.gms:play-services-auth 但它不需要任何权限。

整个过程将在旧版本的 Android(需要 2.2+)上失败,或者如果 Google Play 不可用,因此您应该考虑这种情况。

这是一个基本的代码示例:

    private static final int REQUEST_CODE_EMAIL = 1;
private TextView email = (TextView) findViewById(R.id.email);

// ...

try {
Intent intent = AccountPicker.newChooseAccountIntent(null, null,
new String[] { GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE }, false, null, null, null, null);
startActivityForResult(intent, REQUEST_CODE_EMAIL);
} catch (ActivityNotFoundException e) {
// TODO
}

// ...

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_EMAIL && resultCode == RESULT_OK) {
String accountName = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
email.setText(accountName);
}
}

关于android - 很好地获取 Android 所有者的电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6502017/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com