این راهنما نحوه انتقال بازی خود را برای استفاده از آخرین 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()
هنوز بخشی از رابط است.
کاتلین
()
را از تعریف کلاس حذف کنید زیرا سازنده ای برای فراخوانی در InputMappingProvider
وجود ندارد.
پیاده سازی InputMappingProvider
خود را پیدا کنید:
class MyInputMapProvider : InputMappingProvider() {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
و به این صورت آپدیت کنید:
class MyInputMapProvider : InputMappingProvider {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
جاوا
به جای implements
extends
جایگزین کنید تا نشان دهید که شما به جای توسعه یک کلاس، یک رابط را پیاده سازی می کنید.
محل گسترش 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
دیگر آرگومان نمیپذیرد، بنابراین دیگر نیازی به ارجاع به ارائهدهنده خود ندارید تا بعداً آن را لغو ثبت کنید.
کاتلین
برای ثبت ارائه دهنده نقشه ورودی خود، تماس خود را با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()
}
جاوا
برای ثبت ارائه دهنده نقشه ورودی خود، تماس خود را با 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();
}