Questa guida descrive come eseguire la migrazione del gioco per utilizzare l'SDK Input più recente. L'SDK 1.0.0-beta presenta miglioramenti sostanziali rispetto all'anteprima 0.0.4 precedente. Ti consigliamo di eseguire la migrazione dalle versioni di anteprima precedenti il prima 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é ora è
disponibile su Maven. Quindi, trova questa riga nel file build.grade
a livello di modulo:
implementation files('libs/inputmapping-0.0.4.aar')
Sostituiscilo con il seguente codice:
implementation 'com.google.android.libraries.play.games:inputmapping:1.0.0-beta'
Implementare la nuova interfaccia InputMappingProvider
L'ex classe astratta InputMappingProvider è diventata un'interfaccia nella versione 1.0.0-beta. Il metodo onProvideInputMap() fa ancora parte dell'interfaccia.
Kotlin
Rimuovi () dalla definizione della classe perché non esiste un costruttore da richiamare in
InputMappingProvider.
Individua l'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'interfaccia anziché estendere una classe.
Individua dove estendere InputMappingProvider:
public class MyInputMapProvider extends InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
e modificalo per implementare InputMappingProvider:
public class MyInputMapProvider implements InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
Utilizzare il nuovo InputClient
registerInputMappingProvider e unregisterInputMappingProvider sono stati
sostituiti da setInputMappingProvider e clearInputMappingProvider.
Inoltre, clearInputMappingProvider non accetta più argomenti, quindi non
è più necessario conservare un riferimento al tuo fornitore per annullare la registrazione in un secondo momento.
Kotlin
Per registrare il tuo fornitore di mappe di input, individua la 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 di input, individua la 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 tuo fornitore di mappe di input, individua la 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 dell'input, individua la 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();
}