如何在Android中实现从图库扫描条形码

Hit*_*ani 6 android image barcode barcode-scanner

这是我尝试过的。

我已经在android应用程序中实现了Zbar Scanner,可以在其中扫描barocde并获得结果。

我已经在我的android项目中实现了这一点。现在,我想实现一种扫描仪,用于扫描图库中的图像(当然是条形码图像)。我知道这是有可能的。检查链接。它具有条形码图像扫描。

我试图搜索出来,但是失败了。请帮帮我。

Nam*_*wal 6

现在,可以使用Google Play Services 7.8版本中的新条形码扫描Apis。它具有检测作为位图传递的条形码的方法。从图库中获取图像的路径,并将其转换为位图,然后将其传递,如下所示:

     Frame frame = new Frame.Builder().setBitmap(bitmap).build();
     BarcodeDetector barcodeDetector = new BarcodeDetector.Builder(context)
                    .build();
if(barcode.isOperational()){
    SparseArray<Barcode> sparseArray = barcodeDetector.detect(frame);
                if(sparseArray != null && sparseArray.size() > 0){
                    for (int i = 0; i < sparseArray.size(); i++){
                                        Log.d(LOG_TAG, "Value: " + sparseArray.valueAt(i).rawValue + "----" + sparseArray.valueAt(i).displayValue);
                                        Toast.makeText(LOG_TAG, sparseArray.valueAt(i).rawValue, Toast.LENGTH_SHORT).show();

                                    }
                }else {
                    Log.e(LOG_TAG,"SparseArray null or empty");
                }

}else{
    Log.e(LOG_TAG, "Detector dependencies are not yet downloaded");
}
Run Code Online (Sandbox Code Playgroud)

在您的build.gradle文件中,在“依赖项”部分包括以下内容:编译“ com.google.android.gms:play-services:7.8。+”

必须具有以下清单权限:

<uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)

Google Play服务的元数据:

<meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
Run Code Online (Sandbox Code Playgroud)

将下载用于首次安装/运行时相关性的元数据,以使条形码检测器正常运行。

<meta-data
            android:name="com.google.android.gms.vision.DEPENDENCIES"
            android:value="barcode" />
Run Code Online (Sandbox Code Playgroud)

这个API的详细用法,请参阅Github的样品,遵循代码实验室文档