Hướng dẫn này mô tả cách di chuyển trò chơi của bạn để sử dụng SDK đầu vào mới nhất. SDK phiên bản thử nghiệm 1.0.0 có những cải tiến đáng kể so với bản xem trước 0.0.4 trước đó. Bạn nên di chuyển từ các bản xem trước trước đó sớm nhất có thể. SDK 0.0.4 sẽ tiếp tục hoạt động đến hết tháng 3 năm 2023.
Cập nhật phần phụ thuộc
Xóa thư viện 0.0.4 khỏi thư mục libs
của bạn vì thư viện hiện có sẵn trên maven. Sau đó, tìm dòng này trong tệp build.grade
ở cấp mô-đun:
implementation files('libs/inputmapping-0.0.4.aar')
Thay thế bằng mã sau:
implementation 'com.google.android.libraries.play.games:inputmapping:1.0.0-beta'
Triển khai giao diện InputMappingProvider mới
Lớp trừu tượng InputMappingProvider
trước đây đã chuyển thành giao diện trong phiên bản 1.0.0-beta
. Phương thức onProvideInputMap()
vẫn là một phần của giao diện.
Kotlin
Xóa ()
khỏi định nghĩa lớp vì không có hàm dựng nào để gọi trong InputMappingProvider
.
Xác định vị trí triển khai InputMappingProvider
của bạn:
class MyInputMapProvider : InputMappingProvider() {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
Và cập nhật nó như sau:
class MyInputMapProvider : InputMappingProvider {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
Java
Thay thế extends
bằng implements
để cho biết bạn đang triển khai giao diện thay vì mở rộng một lớp.
Định vị nơi bạn mở rộng InputMappingProvider
:
public class MyInputMapProvider extends InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
Và thay đổi nó để triển khai InputMappingProvider
:
public class MyInputMapProvider implements InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
Sử dụng InputClient mới
registerInputMappingProvider
và unregisterInputMappingProvider
đã được thay thế bằng setInputMappingProvider
và clearInputMappingProvider
.
Hơn nữa, clearInputMappingProvider
không còn chấp nhận đối số nữa, do đó bạn không cần giữ lại thông tin tham chiếu đến nhà cung cấp của mình để hủy đăng ký đối tượng đó sau này.
Kotlin
Để đăng ký nhà cung cấp bản đồ đầu vào của bạn, hãy định vị cuộc gọi của bạn đếnregisterInputMappingProvider
:
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)
}
Và thay thế bằng setInputMappingProvider
:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.setInputMappingProvider(MyInputMapProvider())
}
Để xóa bản đồ nhập vào, hãy định vị cuộc gọi của bạn đến unregisterInputMappingProvider
:
override fun onDestroy() {
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider)
super.onDestroy()
}
Và thay thế bằng clearInputMappingprovider
:
override fun onDestroy() {
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.clearInputMappingProvider()
super.onDestroy()
}
Java
Để đăng ký nhà cung cấp bản đồ đầu vào của bạn, hãy định vị cuộc gọi của bạn đến 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);
}
Và thay thế bằng setInputMappingProvider
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.setInputMappingProvider(new MyInputMapProvider());
}
Để xóa nhà cung cấp của liên kết đầu vào, hãy định vị cuộc gọi của bạn đến unregisterInputMappingProvider
:
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider);
super.onDestroy();
}
Và thay thế bằng clearInputMappingProvider
:
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.clearInputMappingProvider();
super.onDestroy();
}