Questa guida descrive come eseguire la migrazione del tuo gioco per utilizzare l'SDK di input più recente. L'SDK 1.0.0-beta presenta miglioramenti sostanziali rispetto alla precedente anteprima 0.0.4. Devi 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 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
La precedente 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 richiamare in InputMappingProvider
.
Individua la tua implementazione di InputMappingProvider
:
class MyInputMapProvider : InputMappingProvider() {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
e aggiornalo 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 estendi InputMappingProvider
:
public class MyInputMapProvider extends InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
E modificala 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
sostituiti con setInputMappingProvider
e clearInputMappingProvider
.
Inoltre, clearInputMappingProvider
non prende più un argomento, quindi non devi più conservare un riferimento al tuo provider per annullarne la registrazione in un secondo momento.
Kotlin
Per registrare il tuo 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)
}
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 tua chiamata a unregisterInputMappingProvider
:
override fun onDestroy() {
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider)
super.onDestroy()
}
Sostituiscila 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 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);
}
Sostituiscila 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 mapping degli input, individua la tua chiamata a
unregisterInputMappingProvider
:
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider);
super.onDestroy();
}
Sostituiscila con clearInputMappingProvider
:
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.clearInputMappingProvider();
super.onDestroy();
}