Прежде всего, запрашиваемые вами области плюс устарели и в течение нескольких дней приведут к сбоям.См. https://developers.google.com/+/api-shutdown
Однако для запроса разрешений на разных экранах вы должны иметь возможность запрашивать дополнительные области , когда они вам нужны, и изящно обрабатывать, если пользователь их отклоняет.
Не проверено, но что-то вроде:
GoogleSignIn.requestPermissions(
MyActivity.this,
RC_REQUEST_PERMISSION_CONTACTS,
GoogleSignIn.getLastSignedInAccount(getActivity()),
SCOPE_CONTACTS_READ);
в onActivityResults()
это может быть что-то вроде
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
if (RC_REQUEST_PERMISSION_CONTACTS == requestCode) {
// They've accepted it
}
}
}