نقل البيانات إلى الإصدار التجريبي من حزمة تطوير البرامج (SDK) للإدخال 1.0.0

يوضّح هذا الدليل كيفية نقل لعبتك لاستخدام أحدث إصدار من حزمة Input SDK. يتضمّن الإصدار التجريبي 1.0.0 من حزمة SDK تحسينات كبيرة مقارنةً بالمعاينة السابقة 0.0.4. ننصحك بنقل البيانات من الإصدارات السابقة من المعاينة في أقرب وقت ممكن. سيستمر عمل حزمة تطوير البرامج (SDK) الإصدار 0.0.4 حتى مارس 2023.

تعديل التبعية

احذف مكتبة الإصدار 0.0.4 من دليل libs لأنّ المكتبة أصبحت متاحة على Maven. بعد ذلك، ابحث عن هذا السطر في ملف build.grade على مستوى الوحدة:

implementation files('libs/inputmapping-0.0.4.aar')

استبدِلها بالرمز التالي:

implementation 'com.google.android.libraries.play.games:inputmapping:1.0.0-beta'

تنفيذ واجهة InputMappingProvider الجديدة

تم تحويل الفئة المجردة السابقة InputMappingProvider إلى واجهة في الإصدار 1.0.0-beta. لا تزال الطريقة onProvideInputMap() جزءًا من الواجهة.

Kotlin

أزِل () من تعريف الفئة لأنّه لا توجد دالة إنشائية يمكن استدعاؤها في InputMappingProvider.

ابحث عن عملية تنفيذ InputMappingProvider:

class MyInputMapProvider : InputMappingProvider() {
    override fun onProvideInputMap(): InputMap {
        TODO("Not yet implemented")
    }
}

وعدِّلها إلى ما يلي:

class MyInputMapProvider : InputMappingProvider {
    override fun onProvideInputMap(): InputMap {
        TODO("Not yet implemented")
    }
}

Java

استبدِل extends بـ implements للإشارة إلى أنّك تنفّذ واجهة بدلاً من توسيع فئة.

حدِّد المكان الذي تريد تمديد اشتراك InputMappingProvider فيه:

public class MyInputMapProvider extends InputMappingProvider {
    @NonNull
    @Override
    public InputMap onProvideInputMap() {
        // TODO: return an InputMap
    }
}

وغيِّرها لتنفيذ InputMappingProvider:

public class MyInputMapProvider implements InputMappingProvider {
    @NonNull
    @Override
    public InputMap onProvideInputMap() {
        // TODO: return an InputMap
    }
}

استخدام InputClient الجديد

تم استبدال registerInputMappingProvider وunregisterInputMappingProvider بـ setInputMappingProvider وclearInputMappingProvider. بالإضافة إلى ذلك، لم يعُد clearInputMappingProvider يقبل وسيطة، لذا لم يعُد عليك الاحتفاظ بمرجع لمقدّم الخدمة لإلغاء تسجيله لاحقًا.

Kotlin

لتسجيل موفّر خريطة الإدخال، ابحث عن طلبك إلى registerInputMappingProvider:

private val myInputMapProvider by lazy {
    MyInputMapProvider()
}

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val inputMappingClient = Input.getInputMappingClient(this)
    inputMappingClient.registerInputMappingProvider(myInputMapProvider)
}

واستبدِلها بـ setInputMappingProvider:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val inputMappingClient = Input.getInputMappingClient(this)
    inputMappingClient.setInputMappingProvider(MyInputMapProvider())
}

لمحو خريطة الإدخال، ابحث عن مكالمتك إلى unregisterInputMappingProvider:

override fun onDestroy() {
    val inputMappingClient = Input.getInputMappingClient(this)
    inputMappingClient.unregisterInputMappingProvider(myInputMapProvider)

    super.onDestroy()
}

واستبدِلها بـ clearInputMappingprovider:

override fun onDestroy() {
    val inputMappingClient = Input.getInputMappingClient(this)
    inputMappingClient.clearInputMappingProvider()

    super.onDestroy()
}

Java

لتسجيل موفّر خريطة الإدخال، ابحث عن طلبك إلى registerInputMappingProvider:

private final MyInputMapProvider myInputMapProvider = new MyInputMapProvider();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
    inputMappingClient.registerInputMappingProvider(myInputMapProvider);
}

واستبدِلها بـ setInputMappingProvider:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
    inputMappingClient.setInputMappingProvider(new MyInputMapProvider());
}

لمحو مقدّم خدمة ربط الإدخال، ابحث عن طلبك إلى unregisterInputMappingProvider:

@Override
protected void onDestroy() {
    InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
    inputMappingClient.unregisterInputMappingProvider(myInputMapProvider);

    super.onDestroy();
}

واستبدِلها بـ clearInputMappingProvider:

@Override
protected void onDestroy() {
    InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
    inputMappingClient.clearInputMappingProvider();

    super.onDestroy();
}