feat(sharing): Refactor QR/NFC scanning with ML Kit and CameraX (#4471)

Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
This commit is contained in:
James Rich 2026-02-05 22:16:16 -06:00 committed by GitHub
parent 3971c0a9f4
commit 96551761c8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
37 changed files with 1455 additions and 464 deletions

View file

@ -70,9 +70,12 @@
<!-- Needed to open our bluetooth connection to our paired device (after reboot) -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!-- zxing library for QR Code scanning using camera -->
<!-- Camera permission for QR Code scanning -->
<uses-permission android:name="android.permission.CAMERA" />
<!-- NFC permission for sharing channels and contacts -->
<uses-permission android:name="android.permission.NFC" />
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
@ -81,6 +84,10 @@
android:name="android.hardware.bluetooth_le"
android:required="false" />
<uses-feature
android:name="android.hardware.nfc"
android:required="false" />
<!-- for USB serial access -->
<uses-feature
android:name="android.hardware.usb.host"
@ -94,7 +101,6 @@
</intent>
</queries>
<!-- hardware acceleration is required for zxing barcode lib -->
<application
android:name="com.geeksville.mesh.MeshUtilApplication"
android:allowBackup="false"
@ -140,11 +146,6 @@
android:value="true" />
</service>
<activity
android:name="com.journeyapps.barcodescanner.CaptureActivity"
android:screenOrientation="unspecified"
tools:replace="screenOrientation" />
<activity
android:name="com.geeksville.mesh.MainActivity"
android:launchMode="singleTop"
@ -190,6 +191,18 @@
<data android:pathPrefix="/V/" />
</intent-filter>
<!-- Support NFC NDEF Discovery for the same URLs -->
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="https" />
<data android:host="meshtastic.org" />
<data android:pathPrefix="/e/" />
<data android:pathPrefix="/E/" />
<data android:pathPrefix="/v/" />
<data android:pathPrefix="/V/" />
</intent-filter>
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>