The minimum API level required to run the application

Telemarketing List delivers accurate phone number databases for effective customer outreach. Our data is tailored to enhance sales, lead generation, and telemarketing campaigns.
Post Reply
ishanijerin1
Posts: 58
Joined: Tue Jan 07, 2025 4:27 am

The minimum API level required to run the application

Post by ishanijerin1 »

Android 6.0 (API Level 22) or higher
How to implement
1. Adding dependencies
First, app/build.gradleadd dependencies for the CameraX and ML Kit libraries:

dependencies {
// CameraX
def camerax_version = "1.4.0-beta01"
implementation "androidx.camera:camera-camera2: ${camerax_version} "
implementation "androidx.camera:camera-lifecycle: ${camerax_version} "
implementation "androidx.camera :camera-view: ${camerax_version} "
implementation "androidx.camera:camera-mlkit-vision: ${camerax_version} "

// ML Kit barcode-scanning
implementation 'com.google timor-leste email address mlkit:barcode-scanning:17.2.0'
}
2. Adding permissions
Next, AndroidManifest.xmladd camera permissions to .

<uses-feature android : name = "android.hardware.camera.any" />
<uses-permission android : name = "android.permission.CAMERA" />
3. Create a layout
layoutPreviewViewAdd it to your XML file .

<androidx . camera . view . PreviewView
android : id = "@+id/preview_view" android : layout_width = "match_parent" android : layout_height = "match_parent" />


4. Camera permission check
Add code to check camera permissions.

companion object {
private val REQUIRED_PERMISSIONS = arrayOf(android.Manifest.permission.CAMERA)
private const val REQUEST_CODE_PERMISSIONS = 10 // Any value is acceptable
}

override fun onCreate(savedInstanceState: Bundle?) {
super .onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

// Check camera permissions
if (allPermissionsGranted()) {
startCamera()
} else {
ActivityCompat.requestPermissions( this , REQUIRED_PERMISSIONS, REQUEST_CODE_PERMISSIONS)
}
}

private fun allPermissionsGranted() = REQUIRED_PERMISSIONS.all {
ContextCompat.checkSelfPermission(baseContext, it) == PackageManager.PERMISSION_GRANTED
}

override fun onRequestPermissionsResult(
requestCode: Int , permissions: Array < out String >, grantResults: IntArray
) {
super .onRequestPermissionsResult(requestCode, permissions, grantResults)
if (requestCode == REQUEST_CODE_PERMISSIONS) {
if (allPermissionsGranted()) {
startCamera()
} else {
Toast.makeText( this , "Camera permission not granted." , Toast.LENGTH_SHORT).show()
finish()
}
}
}
5. ML Kit Analyzer Implementation
Finally, we will implement the ML Kit Analyzer to read the barcode.

private lateinit var barcodeScanner: BarcodeScanner

private fun startCamera() {
val cameraController = LifecycleCameraController(baseContext)
val previewView: PreviewView = findViewById(R.id.preview_view)

// Set the barcode format to be detected
val options = BarcodeScannerOptions.Builder()
.setBarcodeFormats(Barcode.FORMAT_ALL_FORMATS)
.build()

barcodeScanner = BarcodeScanning.getClient(options)

cameraController.setImageAnalysisAnalyzer(
ContextCompat.getMainExecutor( this ),
MlKitAnalyzer(
listOf(barcodeScanner),
COORDINATE_SYSTEM_VIEW_REFERENCED,
ContextCompat.getMainExecutor( this )
) { result: MlKitAnalyzer. Result ? ->
val barcodeResults = result?.getValue(barcodeScanner)
if (barcodeResults.isNullOrEmpty() || barcodeResults.first() == null ) {
return @MlKitAnalyzer
}
Log.d( "TAG" , "rawValue = ${ barcodeResults[ 0 ].rawValue } " )
}
)

cameraController.bindToLifecycle( this )
previewView.controller = cameraController
}
resultThe value of the barcode that was read is entered in the . In the above source code, the received value is output to the log.
Post Reply