You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

解决Intent传递BluetoothDevice对象的获取问题

问题根源

BluetoothDevice类实现的是Parcelable接口,而非Serializable接口,你用getSerializableExtra()获取自然会出现类型不匹配的问题,强制转换也无法解决本质问题。

修正方案

将目标页面的获取代码替换为getParcelableExtra(),并正确进行类型转换:

修正后的NextActivity代码

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

    Intent intent = getIntent();
    // 针对Android 13以下版本,强制转换类型
    btDevice = (BluetoothDevice) intent.getParcelableExtra("btDevice");
    
    // 如果是Android 13及以上版本,推荐使用带泛型的重载方法
    // btDevice = intent.getParcelableExtra("btDevice", BluetoothDevice.class);
}

补充说明

Android系统中,Intent传递对象时支持两种序列化方式:Parcelable和Serializable。BluetoothDevice官方实现的是Parcelable,所以必须用对应的getParcelableExtra()方法来获取,系统才能正确完成对象的反序列化。

内容的提问来源于stack exchange,提问作者tonykrjhc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 02:55:23