Este guia descreve como migrar seu jogo para usar o SDK de entrada mais recente. O SDK 1.0.0-beta tem melhorias significativas em relação à versão anterior 0.0.4. Migre das visualizações anteriores assim que possível. O SDK 0.0.4 vai continuar funcionando até março de 2023.
Atualizar a dependência
Exclua a biblioteca 0.0.4 do seu diretório libs
, já que ela está
disponível no Maven. Em seguida, localize esta linha no arquivo build.grade
do módulo:
implementation files('libs/inputmapping-0.0.4.aar')
Substitua por este código:
implementation 'com.google.android.libraries.play.games:inputmapping:1.0.0-beta'
Implementar a nova interface InputMappingProvider
A antiga classe abstrata InputMappingProvider
se transformou em uma interface na
versão 1.0.0-beta
. O método onProvideInputMap()
ainda faz parte da
interface.
Kotlin
Remova ()
da definição da classe, já que não há um construtor para invocar em
InputMappingProvider
.
Localize a implementação de InputMappingProvider
.
class MyInputMapProvider : InputMappingProvider() {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
E atualize para o seguinte:
class MyInputMapProvider : InputMappingProvider {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
Java
Substitua extends
por implements
para indicar que você está implementando uma
interface em vez de estender uma classe.
Localize onde você estende o InputMappingProvider
:
public class MyInputMapProvider extends InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
E mude-o para implementar InputMappingProvider
:
public class MyInputMapProvider implements InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
Usar o novo InputClient
Os elementos registerInputMappingProvider
e unregisterInputMappingProvider
foram
substituídos por setInputMappingProvider
e clearInputMappingProvider
.
Além disso, clearInputMappingProvider
não usa mais um argumento. Assim, você não
precisa mais manter uma referência ao seu provedor para cancelar o registro depois.
Kotlin
Para registrar seu provedor de mapa de entrada, localize a chamada pararegisterInputMappingProvider
:
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 substitua por setInputMappingProvider
:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.setInputMappingProvider(MyInputMapProvider())
}
Para limpar seu mapa de entrada, localize a chamada para unregisterInputMappingProvider
:
override fun onDestroy() {
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider)
super.onDestroy()
}
E substitua por clearInputMappingprovider
:
override fun onDestroy() {
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.clearInputMappingProvider()
super.onDestroy()
}
Java
Para registrar seu provedor de mapa de entrada, localize a chamada para
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 substitua por setInputMappingProvider
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.setInputMappingProvider(new MyInputMapProvider());
}
Para limpar o provedor de mapeamento de entrada, localize a chamada para
unregisterInputMappingProvider
:
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider);
super.onDestroy();
}
E substitua por clearInputMappingProvider
:
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.clearInputMappingProvider();
super.onDestroy();
}