ย้ายข้อมูลไปยัง SDK อินพุต 1.0.0 รุ่นเบต้า

คำแนะนำนี้จะอธิบายวิธีย้ายข้อมูลเกมไปใช้เวอร์ชันล่าสุด SDK อินพุต SDK 1.0.0 รุ่นเบต้ามีการปรับปรุงที่สำคัญมากกว่า ตัวอย่าง 0.0.4 ก่อนหน้า คุณควรย้ายข้อมูลจากการแสดงตัวอย่างก่อนหน้านี้โดยเร็วที่สุด เท่าที่จะเป็นไปได้ SDK 0.0.4 จะยังทำงานต่อไปจนถึงเดือนมีนาคม 2023

อัปเดตทรัพยากร Dependency

ลบไลบรารี 0.0.4 ออกจากไดเรกทอรี libs เนื่องจากไลบรารีในขณะนี้ ที่มีใน 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() ยังคงเป็นส่วนหนึ่งของ ของ Google

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();
}