คุณควรร้องขอขอบเขตนิดเดียวเท่าที่จะเป็นไปได้เมื่อลงชื่อเข้าใช้ผู้ใช้ครั้งแรกเพื่อให้ผู้ใช้ได้รับประสบการณ์ที่ดีที่สุด
หากฟังก์ชันหลักของแอปไม่ได้เชื่อมโยงกับ
บริการของ Google คุณมักจะ
ต้องGoogleSignInOptions.DEFAULT_SIGN_INกำหนดค่าเพียงเล็กน้อย
เมื่อลงชื่อเข้าใช้
หากแอปมีฟีเจอร์ที่ใช้ข้อมูลจาก Google API ได้ แต่ไม่ได้ จำเป็นต่อฟังก์ชันหลักของแอป คุณควรออกแบบแอปให้ รองรับกรณีที่เข้าถึงข้อมูล API ไม่ได้ ตัวอย่างเช่น คุณอาจซ่อนรายการไฟล์ที่บันทึกไว้ล่าสุดเมื่อผู้ใช้ไม่ได้ให้สิทธิ์เข้าถึงไดรฟ์
คุณควรขอขอบเขตเพิ่มเติมที่จำเป็นต่อการเข้าถึง Google API เฉพาะเมื่อผู้ใช้ดำเนินการที่ต้องเข้าถึง API ใด API หนึ่ง เช่น คุณอาจขอสิทธิ์เข้าถึงไดรฟ์ของผู้ใช้เฉพาะเมื่อผู้ใช้แตะปุ่ม "บันทึกลงในไดรฟ์" เป็นครั้งแรก
การใช้เทคนิคนี้จะช่วยให้คุณหลีกเลี่ยงการสร้างความสับสนให้ผู้ใช้ใหม่หรือ ผู้ใช้ทั่วไปเกี่ยวกับสาเหตุที่ระบบขอสิทธิ์บางอย่าง
ขอสิทธิ์ที่การดำเนินการของผู้ใช้ต้องใช้
ทุกครั้งที่ผู้ใช้ดำเนินการที่ต้องใช้ขอบเขตที่ไม่ได้ขอเมื่อลงชื่อเข้าใช้ ให้เรียกใช้ GoogleSignIn.hasPermissions เพื่อตรวจสอบว่าผู้ใช้ได้ให้สิทธิ์ที่จำเป็นแล้วหรือไม่
หากไม่เป็นเช่นนั้น ให้เรียกใช้ GoogleSignIn.requestPermissions
เพื่อเปิดใช้กิจกรรมที่ขอขอบเขตเพิ่มเติมที่จำเป็นจากผู้ใช้
เช่น หากผู้ใช้ดำเนินการที่ต้องเข้าถึงพื้นที่เก็บข้อมูลแอปในไดรฟ์ ให้ทำดังนี้
if (!GoogleSignIn.hasPermissions(
GoogleSignIn.getLastSignedInAccount(getActivity()),
Drive.SCOPE_APPFOLDER)) {
GoogleSignIn.requestPermissions(
MyExampleActivity.this,
RC_REQUEST_PERMISSION_SUCCESS_CONTINUE_FILE_CREATION,
GoogleSignIn.getLastSignedInAccount(getActivity()),
Drive.SCOPE_APPFOLDER);
} else {
saveToDriveAppFolder();
}
ในonActivityResultการเรียกกลับของกิจกรรม คุณสามารถตรวจสอบว่าได้รับสิทธิ์ที่จำเป็นสำเร็จหรือไม่ และหากได้รับแล้ว ให้ดำเนินการของผู้ใช้
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
if (RC_REQUEST_PERMISSION_SUCCESS_CONTINUE_FILE_CREATION == requestCode) {
saveToDriveAppFolder();
}
}
}
นอกจากนี้ คุณยังส่ง GoogleSignInOptionsExtension ไปยัง hasPermissions และ
requestPermissions เพื่อตรวจสอบและรับชุดสิทธิ์ได้สะดวกยิ่งขึ้นด้วย