به 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'

رابط جدید 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();
}