برای بازی‌های اندروید وارد شوید

برای دسترسی به عملکرد سرویس‌های بازی‌های Google Play، بازی شما باید حساب بازیکن واردشده به سیستم را ارائه دهد. این مستندات نحوه اجرای یک تجربه ورود یکپارچه را در بازی خود شرح می دهد.

Play Games Services v2 SDK تعدادی پیشرفت را به ارمغان می‌آورد که تعداد کاربرانی را که وارد بازی شما شده‌اند افزایش می‌دهد و توسعه را آسان‌تر می‌کند:

  • بهبود برای کاربران:
    • پس از انتخاب یک حساب پیش فرض، کاربران بدون نیاز به تعامل با درخواست وارد سیستم می شوند.
    • کاربران دیگر نیازی به دانلود برنامه بازی‌های Play برای ورود به سیستم خدمات بازی‌های Play یا ایجاد حساب جدید ندارند.
    • کاربران اکنون می توانند حساب های خدمات بازی های Play خود را برای چندین بازی از یک صفحه مدیریت کنند.
  • بهبود برای توسعه دهندگان:
    • کد مشتری دیگر نیازی به کنترل جریان ورود به سیستم یا خروج از سیستم ندارد، زیرا هنگام شروع بازی، ورود به سیستم به طور خودکار فعال می شود و مدیریت حساب در تنظیمات سیستم عامل انجام می شود.

ادغام کلاینت جدید با خدمات بازی های Play ورود به سیستم نسخه 2

این بخش نحوه ادغام کلاینت جدید با Play Games Services Sign In v2 را نشان می دهد.

وابستگی SDK Services Games Play را اضافه کنید

وابستگی Play Game Services SDK را به فایل build.gradle در سطح ریشه برنامه خود اضافه کنید. اگر از Gradle استفاده می کنید، می توانید وابستگی را به صورت زیر اضافه یا به روز کنید:

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

شناسه پروژه خدمات بازی‌های Play را تعریف کنید

برای افزودن شناسه پروژه SDK خدمات Play Games به برنامه خود، مراحل زیر را انجام دهید:

  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 پیدا کنید.

  2. در فایل res/values/strings.xml یک مرجع منبع رشته اضافه کنید و ID پروژه خود را به عنوان مقدار تنظیم کنید. در کنسول Google Play، می‌توانید ID پروژه خود را زیر نام بازی خود در صفحه پیکربندی پیدا کنید. مثلا:

    <!-- 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(..) کلاس 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()
  }
);