כדי לגשת לפונקציונליות של שירותי המשחקים של 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:
לקובץ
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 אפשר למצוא מזהה הפרויקט מתחת לשם המשחק בדף 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()
}
);