انتقال به نسخه Input SDK 1.0.0-beta

این راهنما نحوه انتقال بازی‌تان برای استفاده از جدیدترین کیت توسعه نرم‌افزار ورودی را شرح می‌دهد. کیت توسعه نرم‌افزار 1.0.0-beta نسبت‌به پیش‌نمایش قبلی 0.0.4 بهبودهای قابل‌توجهی دارد. باید در اسرع وقت از پیش‌نمایش‌های قبلی مهاجرت کنید. کیت توسعه نرم‌افزار 0.0.4 تا مارس ۲۰۲۳ به کار خود ادامه خواهد داد.

به‌روزرسانی وابستگی

کتابخانه 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")
    }
}

جاوا

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
    }
}

استفاده از 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();
}