Questa guida descrive come eseguire la migrazione del gioco per utilizzare la versione più recente SDK di input. L'SDK 1.0.0-beta presenta miglioramenti sostanziali rispetto alla precedente 0.0.4. Dovresti eseguire la migrazione dalle anteprime precedenti appena possibile. L'SDK 0.0.4 continuerà a funzionare fino a marzo 2023.
Aggiorna la dipendenza
Elimina la libreria 0.0.4 dalla directory libs
poiché la libreria è ora
disponibili su Maven. Quindi, trova questa riga nella sezione build.grade
a livello di modulo
file:
implementation files('libs/inputmapping-0.0.4.aar')
Sostituiscila con il seguente codice:
implementation 'com.google.android.libraries.play.games:inputmapping:1.0.0-beta'
Implementare la nuova interfaccia InputMappingProvider
La precedente classe astratta InputMappingProvider
è stata trasformata in un'interfaccia in
versione 1.0.0-beta
. Il metodo onProvideInputMap()
fa ancora parte di
a riga di comando.
Kotlin
Rimuovi ()
dalla definizione della classe in quanto non esiste un costruttore da richiamare in
InputMappingProvider
.
Individua la tua implementazione di InputMappingProvider
:
class MyInputMapProvider : InputMappingProvider() {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
e aggiornalo con questo:
class MyInputMapProvider : InputMappingProvider {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
Java
Sostituisci extends
con implements
per indicare che stai implementando un
piuttosto che estendere una classe.
Individua dove estendi InputMappingProvider
:
public class MyInputMapProvider extends InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
Modificalo per implementare InputMappingProvider
:
public class MyInputMapProvider implements InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
Utilizza il nuovo InputClient
registerInputMappingProvider
e unregisterInputMappingProvider
sono stati
sostituito con setInputMappingProvider
e clearInputMappingProvider
.
Inoltre, clearInputMappingProvider
non accetta più un argomento, quindi
non dovranno più conservare un riferimento al provider per annullarne la registrazione in un secondo momento.
Kotlin
Per registrare il fornitore di mappe di input, individua la tua chiamata aregisterInputMappingProvider
:
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)
}
E sostituiscilo con setInputMappingProvider
:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.setInputMappingProvider(MyInputMapProvider())
}
Per cancellare la mappa inserita, individua la tua chiamata a unregisterInputMappingProvider
:
override fun onDestroy() {
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider)
super.onDestroy()
}
E sostituiscilo con clearInputMappingprovider
:
override fun onDestroy() {
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.clearInputMappingProvider()
super.onDestroy()
}
Java
Per registrare il fornitore di mappe di input, individua la tua chiamata a
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);
}
E sostituiscilo con setInputMappingProvider
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.setInputMappingProvider(new MyInputMapProvider());
}
Per cancellare il fornitore di mappatura di input, individua la tua chiamata a
unregisterInputMappingProvider
:
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider);
super.onDestroy();
}
E sostituiscilo con clearInputMappingProvider
:
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.clearInputMappingProvider();
super.onDestroy();
}