การลงชื่อเข้าใช้สำหรับเกม Android

ในการเข้าถึงฟังก์ชันการทำงานของบริการเกมของ Google Play เกมของคุณต้องมี บัญชีของผู้เล่นที่ลงชื่อเข้าใช้ เอกสารประกอบนี้จะอธิบายวิธี ติดตั้งใช้งานประสบการณ์การลงชื่อเข้าใช้ที่ราบรื่นในเกม

SDK บริการเกมของ Play เวอร์ชัน 2 มีการปรับปรุงหลายอย่างที่จะช่วย จำนวนผู้ใช้ที่ลงชื่อเข้าใช้เกม และทำให้การพัฒนาง่ายขึ้น

  • การปรับปรุงสำหรับผู้ใช้:
    • หลังจากเลือกบัญชีเริ่มต้นแล้ว ผู้ใช้จะเข้าสู่ระบบโดยไม่ต้อง โต้ตอบกับพรอมต์
    • ผู้ใช้ไม่จำเป็นต้องดาวน์โหลดแอป Play Games เพื่อลงชื่อเข้าใช้อีกต่อไป บริการเกมของ Play หรือสร้างบัญชีใหม่
    • ตอนนี้ผู้ใช้จัดการบัญชีบริการเกมของ Play ให้กับเกมหลายเกมได้แล้ว จากหน้าเดียวได้
  • การปรับปรุงสำหรับนักพัฒนาซอฟต์แวร์
    • รหัสไคลเอ็นต์ไม่ต้องจัดการขั้นตอนการลงชื่อเข้าใช้หรือออกจากระบบอีกต่อไป จะทริกเกอร์โดยอัตโนมัติเมื่อเกมเริ่ม และการจัดการบัญชี ในการตั้งค่าระบบปฏิบัติการ

การผสานรวมลูกค้าใหม่

ส่วนนี้จะแสดงวิธีผสานรวมลูกค้าใหม่กับบริการเกมของ Play การลงชื่อเข้าใช้ v2

เพิ่มการอ้างอิง

เพิ่มทรัพยากร Dependency ของ SDK บริการเกมของ Play ลงในระดับรากของแอป build.gradle ไฟล์ หากใช้ Gradle คุณสามารถเพิ่มหรืออัปเดต Dependency ดังนี้

dependencies {
 implementation "com.google.android.gms:play-services-games-v2:+"
}

กำหนดรหัสโปรเจ็กต์

หากต้องการเพิ่มรหัสโปรเจ็กต์ SDK บริการเกมของ Play ลงในแอป ให้ทําตามขั้นตอนต่อไปนี้ ขั้นตอนต่อไปนี้

  1. เพิ่ม <meta-data> ต่อไปนี้ในไฟล์ AndroidManifest.xml ของแอป องค์ประกอบและแอตทริบิวต์ไปยังองค์ประกอบ <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

  2. ในไฟล์ 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 ใน Callback onCreate(..) ของ 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 เกมต่อไป และพยายาม ลงชื่อเข้าใช้งานผู้ใช้อีกครั้งโดยเรียก GamesSignInClient.signIn() หากผู้ใช้ กดปุ่ม

หลังจากยืนยันว่าผู้ใช้ลงชื่อเข้าใช้แล้ว คุณสามารถเรียกดูรหัสผู้เล่นเพื่อ ระบุผู้ใช้ เช่น

PlayGames.getPlayersClient(activity).getCurrentPlayer().addOnCompleteListener(mTask -> {
    // Get PlayerID with mTask.getResult().getPlayerId()
  }
);