Quote from paultomo on September 30, 2025, 4:04 pmI have been testing the NeoScan plugin sample app to get it working on a mobile phone, with the intention of adding Barcode & QR code scanning to an app.
If run on a PC, it all works fine, connects to the webcam and the url or text scanned is displayed.
I have added the extra permisions I belive are needed to the config.xml to get the sample app working on an Android mobile but when built via VoltBuilder and installed on the mobile, nothing happens at all.
<permission name="android.permission.CAMERA"/> <uses-feature name="android.hardware.camera"/>Just wondered if anyone has successfully added camera functionallity to an Android app and how?
Many Thanks
I have been testing the NeoScan plugin sample app to get it working on a mobile phone, with the intention of adding Barcode & QR code scanning to an app.
If run on a PC, it all works fine, connects to the webcam and the url or text scanned is displayed.
I have added the extra permisions I belive are needed to the config.xml to get the sample app working on an Android mobile but when built via VoltBuilder and installed on the mobile, nothing happens at all.
<permission name="android.permission.CAMERA"/> <uses-feature name="android.hardware.camera"/>
Just wondered if anyone has successfully added camera functionallity to an Android app and how?
Many Thanks
Quote from paultomo on October 2, 2025, 6:01 pmI have been searching through 100's of developer sites and this forum to no avail. So I feel as though I'm fighting a loosing battle on how to get the camera to turn on, on a mobile phone!
You asked a question in 2022 "NeoWebCam: How to stop camera". In this you imply that you can open the camera using the plugin NeoWebCam in an Android app and this is working on the mobile device.
I have been struggling for a couple of days now in trying to work out how to get any Visualneo app to open an Android mobile device camera, it all works fine with a PC webcam or via a mobile browser but not within an Android Mobile app!
Please can you explain what it was that you have done to allow the NeoWebCam plugin to work on an Android device, permissions, extra plugins or even a sample app would be appreciate.
Many Thanks in advance...
I have been searching through 100's of developer sites and this forum to no avail. So I feel as though I'm fighting a loosing battle on how to get the camera to turn on, on a mobile phone!
You asked a question in 2022 "NeoWebCam: How to stop camera". In this you imply that you can open the camera using the plugin NeoWebCam in an Android app and this is working on the mobile device.
I have been struggling for a couple of days now in trying to work out how to get any Visualneo app to open an Android mobile device camera, it all works fine with a PC webcam or via a mobile browser but not within an Android Mobile app!
Please can you explain what it was that you have done to allow the NeoWebCam plugin to work on an Android device, permissions, extra plugins or even a sample app would be appreciate.
Many Thanks in advance...
Quote from luishp on October 3, 2025, 9:47 am@paultomo I have used VisualNEO Web GPT (AI) to create this information:
Hi — thanks for giving all that context. Getting camera/QR scanning working on Android inside a VisualNEO / VoltBuilder app is tricky, but I have a few suggestions and diagnostics you can try. I’ll also ask a few clarifying questions so we can isolate the issue.
What I found: neoScan, VisualNEO & VoltBuilder
Here’s what I discovered about how the neoScan plugin works and its constraints:
The neoScan plugin is a VisualNEO Web plugin that uses the JavaScript ZXing library (zxing-js) for scanning QR / barcodes. It operates on images (or camera input in a browser) via JavaScript.
But in a compiled app (Android via VoltBuilder / Cordova), using the camera requires native permissions and proper plugin bridging (Java/Android side) so that the web view can access the camera hardware.
There is no built-in documentation in VisualNEO that says “this will magically enable camera in native build” — so your configuration must explicitly include camera / plugin setup.
In VoltBuilder / Cordova projects, many developers report that the camera does not open and that no permission prompt appears.
One workaround others have used is adding a preference:<preference name="AndroidInsecureFileModeEnabled" value="true" />
to
config.xml
to allow for camera / file URI use in Android.Also, the Cordova camera plugin sometimes fails to compile or operate correctly when targeting newer Android SDK versions.
Additionally, note that as of Android 6.0+ (API level 23+), “dangerous” permissions like CAMERA must be requested at runtime (not just declared in the manifest). Just putting
<permission name="android.permission.CAMERA"/>
is not enough — the app must ask the user at runtime. This is a known issue with barcode / camera plugins in Cordova-style apps.One plugin useful to manage runtime permissions is cordova-plugin-android-permissions (or
cordova-plugin-android-permissions
/cordova-plugin-android-permissions
forks).
What to check / try
Here are steps you can follow to debug and (hopefully) get it working on Android:
Step What to do / check Why / what to look for 1 Confirm that a camera plugin is installed in your VoltBuilder / Cordova build (e.g. cordova-plugin-camera
, or a barcode scanner plugin that requires camera)The native side must know how to talk to the camera hardware 2 In config.xml
(or whatever config VoltBuilder uses), ensure you have both the<uses-permission android:name="android.permission.CAMERA" />
and<uses-feature android:name="android.hardware.camera" android:required="false" />
(or true, depending)This ensures the manifest includes the camera permission and feature 3 Add the <preference name="AndroidInsecureFileModeEnabled" value="true" />
if not already presentSome Cordova builds need this to allow camera / file URIs in Android 7+ 4 Use a runtime permission request before trying to scan / open camera Use a plugin like cordova-plugin-android-permissions
to requestCAMERA
permission in code5 Clean and reinstall the app (after uninstalling any previous versions) Sometimes stale permissions or cache block the permission prompt 6 Use remote debugging (Chrome’s Web Inspector) to see console logs when trying to open the camera You might see errors like “permission denied,” or plugin not found, etc. 7 Target lower SDK versions (temporarily) to see if the problem is with strict permissions in newer Android versions E.g. use android-targetSdkVersion="29"
or something lower as a test
@paultomo I have used VisualNEO Web GPT (AI) to create this information:
Hi — thanks for giving all that context. Getting camera/QR scanning working on Android inside a VisualNEO / VoltBuilder app is tricky, but I have a few suggestions and diagnostics you can try. I’ll also ask a few clarifying questions so we can isolate the issue.
Here’s what I discovered about how the neoScan plugin works and its constraints:
The neoScan plugin is a VisualNEO Web plugin that uses the JavaScript ZXing library (zxing-js) for scanning QR / barcodes. It operates on images (or camera input in a browser) via JavaScript.
But in a compiled app (Android via VoltBuilder / Cordova), using the camera requires native permissions and proper plugin bridging (Java/Android side) so that the web view can access the camera hardware.
There is no built-in documentation in VisualNEO that says “this will magically enable camera in native build” — so your configuration must explicitly include camera / plugin setup.
In VoltBuilder / Cordova projects, many developers report that the camera does not open and that no permission prompt appears.
One workaround others have used is adding a preference:
<preference name="AndroidInsecureFileModeEnabled" value="true" />
to config.xml
to allow for camera / file URI use in Android.
Also, the Cordova camera plugin sometimes fails to compile or operate correctly when targeting newer Android SDK versions.
Additionally, note that as of Android 6.0+ (API level 23+), “dangerous” permissions like CAMERA must be requested at runtime (not just declared in the manifest). Just putting <permission name="android.permission.CAMERA"/>
is not enough — the app must ask the user at runtime. This is a known issue with barcode / camera plugins in Cordova-style apps.
One plugin useful to manage runtime permissions is cordova-plugin-android-permissions (or cordova-plugin-android-permissions
/ cordova-plugin-android-permissions
forks).
Here are steps you can follow to debug and (hopefully) get it working on Android:
Step | What to do / check | Why / what to look for |
---|---|---|
1 | Confirm that a camera plugin is installed in your VoltBuilder / Cordova build (e.g. cordova-plugin-camera , or a barcode scanner plugin that requires camera) |
The native side must know how to talk to the camera hardware |
2 | In config.xml (or whatever config VoltBuilder uses), ensure you have both the <uses-permission android:name="android.permission.CAMERA" /> and <uses-feature android:name="android.hardware.camera" android:required="false" /> (or true, depending) |
This ensures the manifest includes the camera permission and feature |
3 | Add the <preference name="AndroidInsecureFileModeEnabled" value="true" /> if not already present |
Some Cordova builds need this to allow camera / file URIs in Android 7+ |
4 | Use a runtime permission request before trying to scan / open camera | Use a plugin like cordova-plugin-android-permissions to request CAMERA permission in code |
5 | Clean and reinstall the app (after uninstalling any previous versions) | Sometimes stale permissions or cache block the permission prompt |
6 | Use remote debugging (Chrome’s Web Inspector) to see console logs when trying to open the camera | You might see errors like “permission denied,” or plugin not found, etc. |
7 | Target lower SDK versions (temporarily) to see if the problem is with strict permissions in newer Android versions | E.g. use android-targetSdkVersion="29" or something lower as a test |
Quote from paultomo on October 3, 2025, 2:46 pmI've got it working, needed to add just a few of the permissions in the config.xml, but manually had to insert into the android platform section or it will not work.
Can get a runtime permission request to open camera wih JS but not the Camera plugin "Photo's and Videos" but for now I can set these by changing manually in the app privacy permissions, so I'm almost there now.
Thanks
I've got it working, needed to add just a few of the permissions in the config.xml, but manually had to insert into the android platform section or it will not work.
Can get a runtime permission request to open camera wih JS but not the Camera plugin "Photo's and Videos" but for now I can set these by changing manually in the app privacy permissions, so I'm almost there now.
Thanks