इस गाइड में, अपने गेम को Input SDK के नए वर्शन पर माइग्रेट करने का तरीका बताया गया है. SDK के 1.0.0-beta वर्शन में, पिछले 0.0.4 वर्शन की तुलना में काफ़ी सुधार किए गए हैं. आपको जल्द से जल्द, पहले से उपलब्ध प्रीव्यू से माइग्रेट कर लेना चाहिए. एसडीके का 0.0.4 वर्शन, मार्च 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();
}