כניסה למשחקים ל-Android

כדי לגשת לפונקציונליות של שירותי המשחקים של Google Play, המשחק צריך לספק את החשבון של השחקן שנכנס. במסמך הזה מוסבר איך להטמיע חוויית כניסה חלקה במשחק.

ה-SDK של Play Games Services בגרסה 2 כולל כמה שיפורים שיעזרו לכם להגדיל את מספר המשתמשים שנכנסים לחשבון במשחק, וגם יעזרו לכם לפתח את המשחק בקלות רבה יותר:

  • שיפורים למשתמשים:
    • אחרי שבוחרים חשבון ברירת מחדל, המשתמשים מחוברים לחשבון בלי צורך לבצע פעולה כלשהי.
    • משתמשים כבר לא צריכים להוריד את אפליקציית Play Games כדי להיכנס באמצעות Play Games Services או ליצור חשבון חדש.
    • עכשיו משתמשים יכולים לנהל את החשבונות שלהם ב-Play Games Services בשביל מספר משחקים מדף אחד.
  • שיפורים למפתחים:
    • קוד הלקוח כבר לא צריך לטפל בתהליך הכניסה או היציאה, בתור התחברות מופעלת באופן אוטומטי כשהמשחק מתחיל, וניהול החשבון בהגדרות מערכת ההפעלה.

שילוב לקוח חדש עם גרסה 2 של כניסה ל-Play Games Services

בקטע הזה נסביר איך לבצע שילוב לקוח חדש עם 'כניסה לחשבון' בגרסה 2 של שירותי המשחקים של Play.

הוספת תלות ב-Play Games Services SDK

מוסיפים את התלות ב-SDK של Play Games Services לקובץ build.gradle ברמת הבסיס של האפליקציה. אם משתמשים ב-Gradle, אפשר להוסיף או לעדכן את השימוש ב-Gradle ככה:

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

הגדרת מזהה הפרויקט ב-Play Games Services

כדי להוסיף לאפליקציה את מזהה הפרויקט של Play Games Services SDK:

  1. לקובץ 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.

  2. בקובץ res/values/strings.xml, מוסיפים הפניה למשאב מחרוזת ומגדירים את מזהה הפרויקט בתור הערך. ב-Google Play Console אפשר למצוא מזהה הפרויקט מתחת לשם המשחק בדף Configuration. לדוגמה:

    <!-- 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 Games, ומנסים להיכנס שוב למשתמש באמצעות קריאה ל-GamesSignInClient.signIn() אם לוחץ על הלחצן.

אחרי שמוודאים שהמשתמש מחובר, אפשר לאחזר את מזהה הנגן כדי לזהות את המשתמש. לדוגמה:

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