Panduan ini menjelaskan cara memigrasikan game Anda untuk menggunakan SDK Input terbaru. SDK 1.0.0-beta memiliki peningkatan substansial dibandingkan pratinjau 0.0.4 sebelumnya. Anda harus bermigrasi dari pratinjau awal sesegera mungkin. SDK 0.0.4 akan terus berfungsi hingga Maret 2023.
Mengupdate dependensi
Hapus library 0.0.4 dari direktori libs
Anda karena library baru kini tersedia
di Maven. Lalu, temukan baris ini dalam file build.grade
level modul
Anda:
implementation files('libs/inputmapping-0.0.4.aar')
Ganti dengan kode berikut:
implementation 'com.google.android.libraries.play.games:inputmapping:1.0.0-beta'
Menerapkan antarmuka InputMappingProvider baru
Class abstrak InputMappingProvider
sebelumnya diubah menjadi antarmuka
di versi 1.0.0-beta
. Metode onProvideInputMap()
masih menjadi bagian dari
antarmuka.
Kotlin
Hapus ()
dari definisi class karena tidak ada konstruktor yang akan dipanggil di
InputMappingProvider
.
Temukan implementasi InputMappingProvider
Anda:
class MyInputMapProvider : InputMappingProvider() {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
Lalu, perbarui menjadi:
class MyInputMapProvider : InputMappingProvider {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
Java
Ganti extends
dengan implements
untuk menunjukkan bahwa Anda menerapkan
antarmuka, bukan memperluas class.
Temukan tempat Anda memperluas InputMappingProvider
:
public class MyInputMapProvider extends InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
Dan ubah untuk mengimplementasikan InputMappingProvider
:
public class MyInputMapProvider implements InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
Menggunakan InputClient baru
registerInputMappingProvider
dan unregisterInputMappingProvider
telah
diganti dengan setInputMappingProvider
dan clearInputMappingProvider
.
Selanjutnya, clearInputMappingProvider
tidak lagi menggunakan argumen sehingga Anda tidak perlu
lagi menyimpan referensi ke penyedia untuk membatalkan pendaftarannya nanti.
Kotlin
Untuk mendaftarkan penyedia peta input Anda, temukan panggilan keregisterInputMappingProvider
:
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)
}
Dan ganti dengan setInputMappingProvider
:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.setInputMappingProvider(MyInputMapProvider())
}
Untuk menghapus peta input, temukan panggilan ke unregisterInputMappingProvider
:
override fun onDestroy() {
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider)
super.onDestroy()
}
Dan ganti dengan clearInputMappingprovider
:
override fun onDestroy() {
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.clearInputMappingProvider()
super.onDestroy()
}
Java
Untuk mendaftarkan penyedia peta input Anda, temukan panggilan ke
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);
}
Dan ganti dengan setInputMappingProvider
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.setInputMappingProvider(new MyInputMapProvider());
}
Untuk menghapus penyedia pemetaan input, temukan panggilan ke
unregisterInputMappingProvider
:
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider);
super.onDestroy();
}
Dan ganti dengan clearInputMappingProvider
:
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.clearInputMappingProvider();
super.onDestroy();
}