I built an Android app using Ionic Capacitor to collect appliance data reports. Key features include QR code scanning, camera functionality, geolocation tracking, and image printing. Issues: QR Code Scanning: Works on some Android devices but not on others. Camera: The camera gets stuck or takes too long to open and Geolocation data is printed on images properly. Package: capacitor-mlkit/barcode-scanning URL: https://www.npmjs.com/package/@capacitor-mlkit/barcode-scanning try { const { barcodes } = await BarcodeScanner.scan(); if (barcodes.length > 0) { this.scannedData = barcodes[0].rawValue; // Extract scanned URL console.log("Scanned URL:", this.scannedData); this.fetchAndExtractContent(this.scannedData); } } catch (error) { console.error("Scanning error:", error); } } Package: @capacitor/camera URL: https://www.npmjs.com/package/@capacitor/camera async captureAndCompressImage(index: number) { this.loader.showLoading(); try { const status = await Network.getStatus(); if (!status.connected) { alert("You have no network, so getting the location may take time..."); } const position = await Geolocation.getCurrentPosition(); const latitude = position.coords.latitude.toFixed(6); const longitude = position.coords.longitude.toFixed(6); this.loader.dismiss(); const image = await Camera.getPhoto({ quality: 40, resultType: CameraResultType.DataUrl, source: CameraSource.Camera, }); const address = await this.getAddressFromCoordinates(latitude, longitude); const locationText = `${address} (Lat: ${latitude}, Lng: ${longitude})`; const imageDataUrl = await this.overlayTextOnImage(image.dataUrl!, locationText); switch (index) { case 1: this.productData.photo1 = imageDataUrl; break; case 2: this.productData.photo2 = imageDataUrl; break; case 3: this.productData.photo3 = imageDataUrl; break; } } catch (error) { console.error('Error capturing image:', error); this.loader.dismiss(); } } Continue reading...