इस गाइड में, अपने गेम को नए Input SDK का इस्तेमाल करने के लिए माइग्रेट करने का तरीका बताया गया है. SDK टूल के 1.0.0-बीटा वर्शन में, 0.0.4 के पिछले बीटा वर्शन के मुकाबले काफ़ी सुधार किए गए हैं. आपको जल्द से जल्द, पुरानी झलकों से माइग्रेट कर लेना चाहिए. 0.0.4 SDK टूल, मार्च 2023 तक काम करता रहेगा.
डिपेंडेंसी अपडेट करना
अपनी libs
डायरेक्ट्री से 0.0.4 लाइब्रेरी मिटाएं, क्योंकि लाइब्रेरी अब Maven पर उपलब्ध है. इसके बाद, अपने मॉड्यूल-लेवल की build.grade
फ़ाइल में यह लाइन ढूंढें:
implementation files('libs/inputmapping-0.0.4.aar')
इसे इस कोड से बदलें:
implementation 'com.google.android.libraries.play.games:inputmapping:1.0.0-beta'
InputMappingProvider का नया इंटरफ़ेस लागू करना
पुरानी ऐब्सट्रैक्ट क्लास InputMappingProvider
, 1.0.0-beta
वर्शन के इंटरफ़ेस में बदल गई. onProvideInputMap()
तरीका अब भी इंटरफ़ेस का हिस्सा है.
Kotlin
क्लास की परिभाषा से ()
को हटाएं, क्योंकि InputMappingProvider
में कोई कंस्ट्रक्टर नहीं है.
InputMappingProvider
लागू करने के लिए:
class MyInputMapProvider : InputMappingProvider() {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
और इसे इसमें अपडेट करें:
class MyInputMapProvider : InputMappingProvider {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
Java
extends
की जगह implements
का इस्तेमाल करें, ताकि यह पता चल सके कि क्लास को बढ़ाने के बजाय इंटरफ़ेस को लागू किया जा रहा है.
InputMappingProvider
को एक्सटेंड करने की जगह ढूंढें:
public class MyInputMapProvider extends InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
और InputMappingProvider
लागू करने के लिए, इसे बदलें:
public class MyInputMapProvider implements InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
नए InputClient का इस्तेमाल करें
registerInputMappingProvider
और unregisterInputMappingProvider
को setInputMappingProvider
और clearInputMappingProvider
से बदल दिया गया है.
इसके अलावा, clearInputMappingProvider
में अब कोई आर्ग्युमेंट नहीं दिया जाता. इसलिए, अब आपको सेवा देने वाली कंपनी का रेफ़रंस नहीं रखना होगा, ताकि बाद में उसे अनरजिस्टर किया जा सके.
Kotlin
इनपुट मैप सेवा देने वाली कंपनी को रजिस्टर करने के लिए,registerInputMappingProvider
को किए गए कॉल का पता लगाएं:
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)
}
और इसे setInputMappingProvider
से बदलें:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.setInputMappingProvider(MyInputMapProvider())
}
इनपुट मैप को मिटाने के लिए, unregisterInputMappingProvider
पर कॉल करें:
override fun onDestroy() {
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider)
super.onDestroy()
}
और इसे clearInputMappingprovider
से बदलें:
override fun onDestroy() {
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.clearInputMappingProvider()
super.onDestroy()
}
Java
इनपुट मैप की सेवा देने वाली कंपनी को रजिस्टर करने के लिए, 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);
}
और इसे setInputMappingProvider
से बदलें:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.setInputMappingProvider(new MyInputMapProvider());
}
इनपुट मैपिंग की सेवा देने वाली कंपनी की जानकारी मिटाने के लिए, unregisterInputMappingProvider
पर कॉल करें:
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider);
super.onDestroy();
}
और इसे clearInputMappingProvider
से बदलें:
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.clearInputMappingProvider();
super.onDestroy();
}