在Android中使用Google API时,有时会遇到“无法获取选择的帐户”的问题。这通常是由于没有正确配置Google账户权限或没有正确处理账户选择的结果所导致的。以下是一个解决方法的代码示例:
...
import android.accounts.AccountManager;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends AppCompatActivity {
private static final int REQUEST_ACCOUNT_PICKER = 1001;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 请求账户选择
Intent accountPickerIntent = AccountManager.newChooseAccountIntent(
null,
null,
new String[]{"com.google"},
null,
null,
null,
null);
startActivityForResult(accountPickerIntent, REQUEST_ACCOUNT_PICKER);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_ACCOUNT_PICKER && resultCode == RESULT_OK) {
// 处理账户选择的结果
String accountName = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
Log.d("MainActivity", "Selected account: " + accountName);
// 在这里可以继续执行其他操作...
} else {
Log.e("MainActivity", "Failed to choose account");
}
}
}
这个示例代码中,我们使用AccountManager.newChooseAccountIntent()
方法来创建一个账户选择的Intent,并使用startActivityForResult()
方法来启动账户选择界面。然后,在onActivityResult()
方法中,我们可以处理选择的账户,并在log中打印出所选的账户名。
请注意,new String[]{"com.google"}
参数用于指定只显示Google账户,你可以根据需要添加或删除其他账户类型。
确保你的应用已经配置了正确的Google账户权限,并且在处理账户选择结果时进行了适当的处理,这样就可以解决“无法获取选择的账户”问题。