نقل البيانات إلى الإصدار التجريبي من حزمة تطوير البرامج (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'

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

تم تحويل فئة التجريد السابقة 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();
}