gpt4 book ai didi

用于打开相机和扫描二维码的Android API?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:22:42 25 4
gpt4 key购买 nike

我正在尝试开发一款可以打开相机并扫描给定二维码的应用。但是,我有一个限制,声明我不能使用任何第 3 方库,如 ZBar Code Reader 或 ZXingScanner,因为它会增加我的 apk 的大小。

我正在调查 Google 的条形码 API,给出 here ,但它似乎没有执行我希望我的应用程序执行的操作,也就是说,它没有打开任何相机并对图像进行实时扫描。

那么,如何让我的应用在特定范围内打开相机并对二维码执行实时扫描?

感谢您的宝贵时间!

最佳答案

Google barcode api 提供对开启相机的支持。这是示例代码

    // A barcode detector is created to track barcodes.  An associated multi-processor instance
// is set to receive the barcode detection results, track the barcodes, and maintain
// graphics for each barcode on screen. The factory is used by the multi-processor to
// create a separate tracker instance for each barcode.
BarcodeDetector barcodeDetector = new BarcodeDetector.Builder(context).build();
BarcodeTrackerFactory barcodeFactory = new BarcodeTrackerFactory(mGraphicOverlay);
barcodeDetector.setProcessor(
new MultiProcessor.Builder<>(barcodeFactory).build());

if (!barcodeDetector.isOperational()) {
// Note: The first time that an app using the barcode or face API is installed on a
// device, GMS will download a native libraries to the device in order to do detection.
// Usually this completes before the app is run for the first time. But if that
// download has not yet completed, then the above call will not detect any barcodes
// and/or faces.
//
// isOperational() can be used to check if the required native libraries are currently
// available. The detectors will automatically become operational once the library
// downloads complete on device.
Log.w(TAG, "Detector dependencies are not yet available.");

// Check for low storage. If there is low storage, the native library will not be
// downloaded, so detection will not become operational.
IntentFilter lowstorageFilter = new IntentFilter(Intent.ACTION_DEVICE_STORAGE_LOW);
boolean hasLowStorage = registerReceiver(null, lowstorageFilter) != null;

if (hasLowStorage) {
Toast.makeText(this, R.string.low_storage_error, Toast.LENGTH_LONG).show();
Log.w(TAG, getString(R.string.low_storage_error));
}
}

// Creates and starts the camera. Note that this uses a higher resolution in comparison
// to other detection examples to enable the barcode detector to detect small barcodes
// at long distances.
CameraSource.Builder builder = new CameraSource.Builder(getApplicationContext(), barcodeDetector)
.setFacing(CameraSource.CAMERA_FACING_BACK)
.setRequestedPreviewSize(1600, 1024)
.setRequestedFps(15.0f);

// make sure that auto focus is an available option
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
builder = builder.setFocusMode(
autoFocus ? Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE : null);
}

mCameraSource = builder
.setFlashMode(useFlash ? Camera.Parameters.FLASH_MODE_TORCH : null)
.build();
}

你可以在这里引用谷歌条形码示例

https://github.com/googlesamples/android-vision/tree/master/visionSamples/barcode-reader

关于用于打开相机和扫描二维码的Android API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40132519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com