如何在 Android 上通过 Intent 的 putExtra 获取 BluetoothDevice 对象?

How to get BluetoothDevice object by Intent's putExtra on Android?

提问人:tonykrjhc 提问时间:11/28/2022 更新时间:11/28/2022 访问量:54

问:

我试图通过意图发送BluetoothDevice对象。 使用 putExtra 附加 BluetoothDevice 对象时没有问题,但是如果我尝试通过 getIntent 获取 BluetoothDevice,则会出现问题。

以下是问题和代码的详细信息

MainActivity

BluetoothDevice btDevice = deviceAdapter.getBleDevice(i);
           Intent intent = new Intent(getApplicationContext(),bleDeviceControlActivity.class);
           intent.putExtra("btDevice",btDevice);
           startActivity(intent);

NextActivity

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ble_device_control);

        Intent intent = getIntent();
        btDevice = intent.getSerializableExtra("btDevice");

    }

此代码上出现问题btDevice = intent.getSerializableExtra("btDevice");

必需的类型是 BluetoothDevice,但提供的类型是 Serializable。 我试着用

btDevice = (BluetoothDevice) intent.getSerializableExtra("btDevice");

但是这段代码仍然不起作用。

Android 意图 投射

评论

1赞 Marcin Orlowski 11/28/2022
doesn't work真的没有任何意义。

答:

1赞 David Wasser 11/28/2022 #1

BluetoothDevice实现。您应该使用代替 .ParcelablegetParcelableExtra()getSerializableExtra()