يوضِّح هذا الدليل كيفية نقل لعبتك لاستخدام أحدث حزمة 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();
}