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

يوضّح هذا الدليل كيفية نقل بيانات لعبتك لاستخدام أحدث إصدار من IDE SDK. تتضمّن حزمة SDK التجريبية 1.0.0 تحسينات كبيرة مقارنةً بالإصدار السابق 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
    }
}

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

تم استبدال 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();
}