The account name is null even after being set.
I've seen this answer, but I do have the GET_ACCOUNTS
permission in both the manifest and secured at runtime.
The following setup is being run on a Pixel XL emulator API 25 (Android 7.1.1).
Manifest
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
Activity
private void queryAPI() {
if (mCredential.getSelectedAccountName() == null) {
if (checkSelfPermission(Manifest.permission.GET_ACCOUNTS) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[] {Manifest.permission.GET_ACCOUNTS}, RCP_AUTH_CRED);
return;
}
mCredential.setSelectedAccountName("test@gmail.com");
Log.d(TAG, "queryAPI: account name " + mCredential.getSelectedAccountName());
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode) {
case RCP_AUTH_CRED:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
queryAPI();
} else {
Log.d(TAG, "onRequestPermissionsResult: " + Integer.toString(grantResults[0]));
}
break;
}
}
Logcat
04-18 21:26:47.590 2700-2700/com.package D/MainActivity: queryAPI: account name null