כדי לגשת לפונקציונליות של Google Play Games Services, המשחק צריך לספק את החשבון של השחקן שנכנס. במסמך הזה מוסבר איך להטמיע חוויית כניסה חלקה במשחק.
ה-SDK של Play Games Services בגרסה 2 כולל כמה שיפורים שיעזרו לכם להגדיל את מספר המשתמשים שנכנסים לחשבון במשחק, וגם יעזרו לכם לפתח את המשחק בקלות רבה יותר:
- שיפורים למשתמשים:
- אחרי שבוחרים חשבון ברירת מחדל, המשתמשים מחוברים לחשבון בלי צורך לבצע פעולה כלשהי.
- משתמשים כבר לא צריכים להוריד את אפליקציית Play Games כדי להיכנס באמצעות Play Games Services או ליצור חשבון חדש.
- עכשיו המשתמשים יכולים לנהל את החשבונות שלהם ב-Play Games Services במספר משחקים מדף אחד.
- שיפורים למפתחים:
- קוד הלקוח כבר לא צריך לטפל בתהליך הכניסה או היציאה, כי הכניסה מופעלת באופן אוטומטי כשהמשחק מתחיל, וניהול החשבון מתבצע בהגדרות של מערכת ההפעלה.
שילוב לקוח חדש
בקטע הזה מוסבר איך לבצע שילוב לקוח חדש עם 'כניסה באמצעות חשבון Play Games Services' גרסה 2.
מוסיפים את יחסי התלות
מוסיפים את התלות ב-SDK של Play Games Services לקובץ build.gradle
ברמת הבסיס של האפליקציה. אם משתמשים ב-Gradle, אפשר להוסיף או לעדכן את יחסי התלות באופן הבא:
dependencies {
implementation "com.google.android.gms:play-services-games-v2:+"
}
הגדרת מזהה הפרויקט
כדי להוסיף לאפליקציה את מזהה הפרויקט של Play Games Services SDK:
בקובץ
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
באמצעות מזהה הפרויקט של שירותי המשחקים של המשחקים שלכם בתור הערך. מזהה הפרויקט של Games Services מופיע מתחת לשם המשחק בדף Configuration ב-Google Play Console.בקובץ
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(..)
ב-class 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()
}
);