เกมของคุณต้องระบุบัญชีของผู้เล่นที่ลงชื่อเข้าใช้เพื่อเข้าถึงฟังก์ชันการทำงานของบริการ Google Play Games เอกสารประกอบนี้อธิบายวิธีใช้ประสบการณ์การลงชื่อเข้าใช้ที่ราบรื่นในเกม
SDK บริการเกมของ Play v2 มีการปรับปรุงหลายอย่างที่จะช่วยเพิ่มจํานวนผู้ใช้ที่ลงชื่อเข้าใช้เกมของคุณ และทําให้การพัฒนาง่ายขึ้น ดังนี้
- การปรับปรุงสำหรับผู้ใช้
- หลังจากเลือกบัญชีเริ่มต้นแล้ว ผู้ใช้จะเข้าสู่ระบบได้โดยไม่ต้องโต้ตอบกับพรอมต์
- ผู้ใช้ไม่จําเป็นต้องดาวน์โหลดแอป Play Games เพื่อลงชื่อเข้าใช้ด้วยบริการเกมของ Play หรือสร้างบัญชีใหม่อีกต่อไป
- ตอนนี้ผู้ใช้สามารถจัดการบัญชีบริการเกมของ Play สำหรับเกมหลายเกมได้จากหน้าเดียว
- การปรับปรุงสำหรับนักพัฒนาแอป
- โค้ดไคลเอ็นต์ไม่จําเป็นต้องจัดการขั้นตอนการลงชื่อเข้าใช้หรือออกจากระบบอีกต่อไป เนื่องจากระบบจะเรียกใช้การเข้าสู่ระบบโดยอัตโนมัติเมื่อเกมเริ่มขึ้น และการจัดการบัญชีจะจัดการในการตั้งค่าระบบปฏิบัติการ
การผสานรวมไคลเอ็นต์ใหม่
ส่วนนี้จะแสดงวิธีผสานรวมไคลเอ็นต์ใหม่กับบริการเกมของ Play การลงชื่อเข้าใช้ v2
เพิ่มการพึ่งพา
เพิ่มข้อกำหนดของ SDK บริการเกมของ Play ลงในไฟล์build.gradle
ระดับรูทของแอป หากใช้ Gradle คุณสามารถเพิ่มหรืออัปเดตข้อกําหนดต่อไปนี้ได้
dependencies {
implementation "com.google.android.gms:play-services-games-v2:+"
}
กําหนดรหัสโปรเจ็กต์
หากต้องการเพิ่มรหัสโปรเจ็กต์ SDK บริการเกมของ Google Play ลงในแอป ให้ทำตามขั้นตอนต่อไปนี้
ในไฟล์
AndroidManifest.xml
ของแอป ให้เพิ่มองค์ประกอบ<meta-data>
และแอตทริบิวต์ต่อไปนี้ลงในองค์ประกอบ<application>
<manifest> <application> <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/game_services_project_id"/> </application> </manifest>
กำหนดการอ้างอิงทรัพยากรสตริง
@string/game_services_project_id
โดยใช้รหัสโปรเจ็กต์บริการเกมของเกมเป็นค่า รหัสโปรเจ็กต์บริการเกมจะแสดงอยู่ใต้ชื่อเกมในหน้าการกําหนดค่าใน Google Play Consoleในไฟล์
res/values/strings.xml
ให้เพิ่มการอ้างอิงทรัพยากรสตริงและตั้งค่ารหัสโปรเจ็กต์เป็นค่า ใน Google Play Console คุณจะเห็นรหัสโปรเจ็กต์ใต้ชื่อเกมในหน้าการกําหนดค่า เช่น<!-- res/values/strings.xml --> <resources> <!-- Replace 0000000000 with your game’s project id. Example value shown above. --> <string translatable="false" name="game_services_project_id"> 0000000000 </string> </resources>
เริ่มต้นใช้งาน SDK
เริ่มต้น Play Games SDK ในonCreate(..)
callback ของApplication
คลาส
import com.google.android.gms.games.PlayGamesSdk;
...
@Override
public void onCreate(){
super.onCreate();
PlayGamesSdk.initialize(this);
}
ดูผลลัพธ์การลงชื่อเข้าใช้
เมื่อเกมเปิดขึ้น ระบบจะพยายามลงชื่อเข้าใช้ผู้ใช้เสมอ หากต้องการตรวจสอบสิทธิ์ผู้ใช้ คุณต้องยืนยันว่าผู้ใช้ลงชื่อเข้าใช้เรียบร้อยแล้ว จากนั้นจึงขอรหัสผู้เล่น
หากต้องการยืนยันความพยายามลงชื่อเข้าใช้ ให้เรียกใช้ GamesSignInClient.isAuthenticated()
แล้วใช้ addOnCompleteListener
เพื่อเรียกดูผลลัพธ์ เช่น
GamesSignInClient gamesSignInClient = PlayGames.getGamesSignInClient(getActivity());
gamesSignInClient.isAuthenticated().addOnCompleteListener(isAuthenticatedTask -> {
boolean isAuthenticated =
(isAuthenticatedTask.isSuccessful() &&
isAuthenticatedTask.getResult().isAuthenticated());
if (isAuthenticated) {
// Continue with Play Games Services
} else {
// Disable your integration with Play Games Services or show a
// login button to ask players to sign-in. Clicking it should
// call GamesSignInClient.signIn().
}
});
หากผู้ใช้เลือกที่จะไม่ลงชื่อเข้าใช้เมื่อเกมเปิดขึ้น คุณสามารถเลือกที่จะแสดงปุ่มที่มีไอคอน Play Games ต่อไปได้ และพยายามลงชื่อเข้าใช้ผู้ใช้อีกครั้งโดยเรียกใช้ GamesSignInClient.signIn()
หากผู้ใช้กดปุ่ม
หลังจากยืนยันว่าผู้ใช้ลงชื่อเข้าใช้แล้ว คุณสามารถดึงรหัสผู้เล่นเพื่อระบุตัวตนผู้ใช้ได้ เช่น
PlayGames.getPlayersClient(activity).getCurrentPlayer().addOnCompleteListener(mTask -> {
// Get PlayerID with mTask.getResult().getPlayerId()
}
);