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

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

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

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

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();
}