تسجيل الدخول إلى ألعاب 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/game_services_project_id باستخدام رقم تعريف مشروع "خدمات الألعاب" في ألعابك كقيمة خدمات ألعابك يمكن العثور على رقم تعريف المشروع أسفل اسم لعبتك في صفحة الإعدادات على 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()
  }
);