android 扫描二维码 举例

当在Android应用中实现二维码扫描时,使用ZXing ("Zebra Crossing") 的 zxing-android-embedded 库是一个常见的选择。以下是一个简单的示例,展示了如何在Android应用中集成二维码扫描功能:

1. 添加依赖项

首先,在你的 build.gradle 文件中添加 zxing-android-embedded 和 core 库的依赖项:

dependencies {
// ... 其他依赖项 ...
implementation 'com.journeyapps:zxing-android-embedded:4.4.0' // 使用最新版本
implementation 'com.google.zxing:core:3.4.1' // 核心库
}

2. 在Activity中启动扫描

然后,在你的Activity中,你可以使用 IntentIntegrator 来启动扫描:

import android.content.Intent;  
import android.os.Bundle;  
import androidx.appcompat.app.AppCompatActivity;  
import com.google.zxing.integration.android.IntentIntegrator;  
import com.google.zxing.integration.android.IntentResult;  
  
public class ScanActivity extends AppCompatActivity {  
  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_scan);  
  
        // 初始化扫描器  
        IntentIntegrator integrator = new IntentIntegrator(this);  
        integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE); // 如果你只想要扫描QR码  
        integrator.setCameraId(0); // 选择相机ID,0通常是后置相机  
        integrator.setBeepEnabled(false); // 扫描成功时是否发出哔哔声  
        integrator.setBarcodeImageEnabled(false); // 是否在扫描后显示扫描的条码图片  
        integrator.initiateScan(); // 启动扫描  
    }  
  
    // 处理扫描结果  
    @Override  
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
        IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);  
        if (result != null) {  
            if (result.getContents() == null) {  
                // 用户取消扫描  
            } else {  
                // 扫描成功,获取扫描结果  
                String scanResult = result.getContents();  
                // 在这里处理扫描结果,比如显示到界面上或发送到服务器  
                // ...  
            }  
        } else {  
            super.onActivityResult(requestCode, resultCode, data);  
        }  
    }  
}

3. 添加必要的权限

在你的 AndroidManifest.xml 文件中添加必要的权限:

<uses-permission android:name="android.permission.CAMERA" />
<!-- 如果你的应用需要访问互联网来验证或处理扫描的数据,也请添加网络权限 -->
<uses-permission android:name="android.permission.INTERNET" />

4. 运行时权限请求

由于Android 6.0(API级别23)及更高版本引入了运行时权限模型,因此你还需要在运行时请求相机权限。你可以使用 ActivityCompat.requestPermissions() 方法来请求权限。

5. 布局文件(可选)

你可能还需要在 activity_scan.xml 布局文件中添加一些UI元素,比如一个按钮来启动扫描,或者一个文本框来显示扫描结果。但在这个简单的示例中,我们直接在 onCreate() 方法中启动了扫描。

6. 处理扫描结果

在 onActivityResult() 方法中,我们检查了扫描的结果。如果扫描成功,我们可以获取到扫描到的内容(例如二维码中的文本),并对其进行处理。如果扫描被用户取消,result.getContents() 将返回 null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值