Privacy and security
What stays on device, where data goes, and the permissions requested.
QCR Scanner is designed so that as much as possible stays inside your phone. Text (OCR) and QR scanning run entirely on the device, the values you collect live in a local database on your phone, and the handful of features that use the network do so only when you explicitly ask and only toward a destination you choose. This page explains, in a balanced and honest way, which data lives where, when something leaves your phone, and which permissions the app asks for and why.
Note: This page explains the app’s privacy approach in plain language; it does not replace a formal privacy policy or a legal agreement. Its purpose is to make it easy to understand what is going on.
Data that stays on the device
The core of QCR Scanner — scanning and collecting data — works entirely on the device, without an internet connection.
- OCR and QR scanning use no network. The recognition engine is Google ML Kit, and it performs text recognition and barcode (QR) reading right on your phone. The images you scan are not sent to a server; you can scan even in airplane mode.
- No photos are saved. In the default Snap mode, pressing the button processes the last frame from the camera stream in memory; there is no shutter, JPEG encoding, or write to disk. In Quality mode the capture is decoded natively on the device as well, and the image never leaves it.
- The values you collect are local. Your lists and scanned values are stored in a local SQLite database on your device. This data does not leave your phone unless you start an export or a sync.
- Your preferences stay on the device. Settings such as the capture mode, validation rules, separator rules, and list triggers are kept locally.
When data leaves the phone
Data leaves your phone only through actions you start. These actions are optional, and you choose their destination.
Webhook sync
When you turn on webhook sync, scanned values are sent only to the URL you enter. You set the destination; ReviseTouch is not in the middle and does not see your data. Sending can happen one item at a time (auto-sync) or in bulk (“Send all”). You can optionally add an Authorization header to the requests; this header is entirely optional and helps you protect your endpoint. When there is no connection, sends wait in the offline queue (outbox) and are delivered automatically once the line returns. The body that is sent looks like this:
{
"action": "add",
"listName": "Counter",
"item": {
"value": "123456",
"isQR": false,
"source": "ocr",
"createdAt": "...",
"isSeparator": false
},
"timestamp": "..."
}
In other words, what is sent is the value you scanned and which list it belongs to — not the camera image or a raw photo. See the webhook sync page for details.
AI rule generator
The AI rule generator sends a request to Google’s Gemini model to build validation rules from plain language. The feature is entirely optional and works within this scope:
- The request is sent only when you tap “generate rule”.
- Only the prompt text you type goes out; the images you scan, camera frames, or list values are not sent.
- The request is made with your own Gemini API key, which is obtained from Google AI Studio and stored on the device. ReviseTouch never sees or stores your key.
The request goes to https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent with the x-goog-api-key header and is subject to Google’s API terms. All the details are on the AI rule generator page.
CSV export
CSV export moves your data out under your control: a CSV file is created and sent through your device’s share menu to the destination you choose — email, cloud drive, messaging, and so on. You decide where the data goes every time. See CSV export.
Voice and microphone
Voice input uses the system’s speech recognition. The microphone is open only while it is actively listening; it engages when you start a voice input mode (push-to-talk, continuous listening, or spoken verification) and turns off when the operation ends. There is no continuous background listening. Speech recognition is a service provided by your device’s operating system, and that service’s behavior is subject to the platform’s own terms. See the voice input page for details.
Ads
QCR Scanner is free and includes AdMob banner ads. To show relevant ads, ad networks typically rely on identifiers such as an advertising ID; this is part of how Google’s ad infrastructure works and is not specific to QCR Scanner. An ad-free Pro subscription is planned but not yet available. We want to be honest about this: the ad component is a part of the app that uses the network and interacts with a third party (Google AdMob).
Permissions requested
QCR Scanner asks only for the permissions it needs, and only the first time you use the related feature.
| Permission | Why it is requested |
|---|---|
| Camera (CAMERA) | Required for text (OCR) and QR scanning, live preview, and camera controls. |
| Microphone (RECORD_AUDIO) | Engages only when you use the voice input modes; you do not need to grant it otherwise. |
| Internet (INTERNET) | Used for webhook sync, sending the offline queue, and AI rule generation; not needed for OCR/QR. |
| Storage | Used when needed during CSV export and file sharing. |
Tip: If you do not use features like voice input or sync, you do not need to grant the related permissions; the app’s core scanning works with the camera alone, with no internet.
Summary
- Scanning (OCR + QR) and data collection happen entirely on the device, with no network.
- Your data lives in a local SQLite database and does not leave the phone unless you start it.
- The webhook goes only to your URL, with an optional
Authorizationheader. - The AI sends only the prompt text, with your own key, and only when you ask.
- The microphone is open only while listening; ads are shown through AdMob.
Made by ReviseTouch.
Next steps
- Webhook sync — data sent only to your own URL.
- AI rule generator — your own key, opt-in, stored on device.
- Voice input — the microphone opening only while listening.
- Settings — managing your preferences and permissions.