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

如何从ActivityResultLauncher中提取二维码扫描结果

提取ZXing扫描二维码数据的正确方式

你当前的问题是没有用ZXing提供的解析方法处理返回结果,直接打印Intent对象自然拿不到有效数据。可以通过IntentIntegrator.parseActivityResult()方法解析扫描结果,具体修改如下:

修改你的ActivityResultCallback实现:

activityResultLaucher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
    @Override
    public void onActivityResult(ActivityResult result) {
        // 用ZXing的解析方法处理返回结果
        IntentResult scanResult = IntentIntegrator.parseActivityResult(result.getResultCode(), result.getData());
        if (scanResult != null && scanResult.getContents() != null) {
            // scanResult.getContents()就是二维码的内容
            String qrCodeData = scanResult.getContents();
            Toast.makeText(getApplicationContext(), qrCodeData, Toast.LENGTH_LONG).show();
        }
    }
});

说明:

  • IntentIntegrator.parseActivityResult()是ZXing专门用来解析扫描返回结果的工具方法,它会从返回的Intent中提取出二维码的文本内容。
  • 解析后得到的IntentResult对象中:
    • getContents():返回二维码的文本数据(即你需要提取的内容)
    • getFormatName():返回二维码的格式(比如QR_CODE)

这样修改后,就能正确提取到扫描得到的二维码数据了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:05:24