تسجيل الدخول إلى ألعاب Android

للوصول إلى وظائف "خدمات ألعاب Google Play"، يجب أن تتضمن لعبتك حساب اللاعب الذي سجّل الدخول إلى حسابه توضّح هذه المستندات كيفية توفير تجربة تسجيل دخول سلسة في لعبتك.

توفّر حزمة تطوير البرامج (SDK) للإصدار 2 من "خدمات ألعاب Play" عددًا من التحسينات وعدد المستخدمين الذين سجّلوا الدخول إلى لعبتك وتسهيل تطويرها:

  • تحسينات للمستخدمين:
    • بعد اختيار حساب تلقائي، يتم تسجيل دخول المستخدمين بدون الحاجة إلى التفاعل مع طلب.
    • لم يعُد المستخدمون بحاجة إلى تنزيل تطبيق "ألعاب Play" لتسجيل الدخول باستخدام "خدمات ألعاب Play" أو إنشاء حساب جديد.
    • يمكن للمستخدمين الآن إدارة حساباتهم على "خدمات ألعاب Play" لتشغيل ألعاب متعددة. من صفحة واحدة.
  • تحسينات للمطوّرين:
    • لم يعد رمز العميل بحاجة إلى معالجة عملية تسجيل الدخول أو الخروج، مثل عملية تسجيل الدخول تلقائيًا عند بدء اللعبة، ويتم تشغيل إدارة الحساب معالجتها في إعدادات نظام التشغيل.

دمج جديد للعميل مع الإصدار 2 من ميزة "تسجيل الدخول إلى خدمات ألعاب Play"

يوضّح هذا القسم كيفية دمج عميل جديد مع الإصدار 2 من ميزة "تسجيل الدخول باستخدام خدمات ألعاب Play".

إضافة الاعتمادية لحزمة تطوير البرامج (SDK) الخاصة بـ "خدمات ألعاب Play"

إضافة الاعتمادية لحزمة تطوير البرامج (SDK) الخاصة بـ "خدمات ألعاب Play" إلى مستوى الجذر في تطبيقك ملف build.gradle. إذا كنت تستخدم Gradle، يمكنك إضافة الاعتمادية أو تعديلها. على النحو التالي:

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

تحديد رقم تعريف مشروع "خدمات ألعاب Play"

لإضافة رقم تعريف مشروع حزمة تطوير البرامج (SDK) الخاصة بـ "خدمات ألعاب Play" إلى تطبيقك، عليك إكمال الخطوات التالية:

  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‏ @string/game_services_project_id باستخدام معرّف مشروع "خدمات ألعاب Play" لألعابك كقيمة. يمكنك العثور على رقم تعريف مشروع "خدمات الألعاب" ضمن اسم لعبتك في صفحة الضبط على 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)

يجب إعداد حزمة تطوير البرامج (SDK) الخاصة بـ "ألعاب Play" في معاودة الاتصال "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()
  }
);