Questa guida descrive come eseguire la migrazione del tuo gioco in modo che utilizzi l'SDK Input più recente. L'SDK 1.0.0 beta presenta miglioramenti sostanziali rispetto alla precedente anteprima 0.0.4. Dovresti eseguire la migrazione dalle anteprime 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
perché ora è disponibile su Maven. Poi 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
è stata trasformata in un'interfaccia nella
versione 1.0.0-beta
. Il metodo onProvideInputMap()
fa ancora parte dell'interfaccia.
Kotlin
Rimuovi ()
dalla definizione della classe poiché non esiste un costruttore da invocare in
InputMappingProvider
.
Individua l'implementazione di InputMappingProvider
:
class MyInputMapProvider : InputMappingProvider() {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
E aggiornala come segue:
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 con setInputMappingProvider
e clearInputMappingProvider
.
Inoltre, clearInputMappingProvider
non accetta più un argomento, quindi non è più necessario mantenere un riferimento al fornitore per annullarne la registrazione in un secondo momento.
Kotlin
Per registrare il fornitore di mappe inserito, 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 sostituiscila 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 sostituiscila con clearInputMappingprovider
:
override fun onDestroy() {
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.clearInputMappingProvider()
super.onDestroy()
}
Java
Per registrare il provider delle 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 di input, individua la chiamata a
unregisterInputMappingProvider
:
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider);
super.onDestroy();
}
e sostituiscila con clearInputMappingProvider
:
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.clearInputMappingProvider();
super.onDestroy();
}