BumuStudios·Türkçe sürüm·ImageToPdf policy·PdfPages policy
Privacy Policy — QR Pocket
Android app, package com.bumustudios.qrpocket
Effective date: 9 October 2026. Last updated: 9 October 2026.
What you scan and the codes you create never leave your device. There is no account to make, no sign-in and no server belonging to this app. Codes are read and generated on your phone, and your scan history is kept only on your phone. The app does not hold the camera permission.
What does leave your device is described in full below: the advertising served through Google AdMob and its mediation partners, Google's payment services, and the usage statistics and crash reports that the developer collects through Google Firebase — never the content of your scans, your history, your images or your Wi-Fi passwords. If you buy the one-time ad removal, the ads stop altogether; the usage statistics and crash reports do not depend on it.
Who this policy is from
This policy covers the Android application QR Pocket: QR Code Generator
(shown on your phone as QR Pocket), distributed through Google Play under the package
name com.bumustudios.qrpocket. It is written by the app's developer, BumuStudios, an
independent developer. Questions can be sent to the address in Contact.
What the app does
QR Pocket creates QR codes and barcodes — text, link, Wi-Fi, contact, social profile link, calendar event, email, phone, SMS, location, EAN-13 and Code 128 — with optional colours, a caption under the code and a printable Wi-Fi card, which you can save as an image or share. It also scans codes — with the camera, from a photo you pick, or from an image you share to the app — and shows what they contain: links, Wi-Fi networks, contacts, email, phone and SMS details, locations, calendar events, product codes and plain text. Scanned and created codes can be kept in a history with search and favourites. There is no subscription.
Your scans and codes stay on your device
This is the most important section, so it is stated plainly:
- Nothing you scan or create is uploaded. The app has no backend of its own. It does not transmit the content of a code, your history, your images or anything typed into the generator, and the usage statistics and crash reports described below never contain them: a crash report shows where in the code a crash happened, not your content.
- The camera scanner is Google's, and it runs in Google Play services.
Scan with the camera opens the Google Code Scanner, a screen provided by Google Play
services. The camera preview and the detection happen inside Google Play services' own process;
QR Pocket never receives a camera frame — only the decoded text of the code and its format. QR
Pocket does not declare or hold the
CAMERApermission. If camera access is needed, it is requested by Google Play services for its scanner, and that permission belongs to Google Play services, not to this app. Google Play services may download the scanner module in the background when the app is installed or first used. - Images are read through the Android Photo Picker, or because you shared them. Scan from an image lets you pick one picture; the app is granted access only to that item and does not browse your gallery. You can also share an image to QR Pocket from another app, and it is scanned in the same way. The image is only read to find codes in it; it is not copied or stored.
- Image scanning happens on the device. Codes in an image are found with Google ML Kit barcode scanning, whose model is built into the app and runs offline, with the open-source ZXing library as a second decoder for images ML Kit misses. ZXing also draws every code you create. See Google ML Kit and the Code Scanner below.
- Saved codes are written through MediaStore into
Pictures/QR Pocketon your device's own storage, as a PNG image. On Android 9 and older, and whenever the shared folder refuses a file, the image is saved into the app's own folder on your device instead, and the app tells you so; files there are removed if the app is uninstalled, while images inPictures/QR Pocketstay until you delete them. No storage permission is requested on any Android version. If you turn on Show the password on the card for a Wi-Fi card, the network password is printed as readable text in the saved or shared image, so anyone who sees that image can read it. - Sharing goes only where you choose. Share on a code, and Export as CSV in History, hand a file to the system Share sheet, and it goes only to the app or person you pick there. To do that, the file is first placed in the app's private cache (it is overwritten by the next share and removed when the cache is cleared or the app is uninstalled).
Links open only when you tap — and are checked first
Scanning a code never opens anything by itself. The result screen first shows the content in
full and, for a link, the real web address it points to, in large type. The app checks the link
offline, on the device — nothing is looked up and nothing is sent anywhere — and warns you about
the usual tricks used in malicious codes: a bare IP address instead of a name, look-alike
international characters (punycode), known link shorteners that hide the destination, a fake
address placed before an @, unencrypted http and unusual ports. A link
with a warning asks you to confirm before it opens. Links using schemes such as
javascript:, data:, file: or intent: are never
opened. These checks reduce risk but cannot guarantee that a site is safe; please look at the
address before you open it.
When you choose to open a link, it opens in your browser, and the website you visit has its own privacy practices, which this policy does not cover. The same applies to the other actions on a result — dialling a number, writing an email or SMS, showing a location on a map, searching the web for a product code, adding a contact or a calendar event: each one only happens when you tap it, and each hands the details to another app on your phone (your dialler, mail, maps, browser, contacts or calendar app), where you confirm. QR Pocket needs no contacts, calendar, phone, SMS or location permission for any of this, and it cannot read your contacts or calendar.
Wi-Fi codes
For a Wi-Fi code, the app shows the network name, the security type and the password, which is hidden until you choose to show it. Connect to this network (Android 11 and newer) opens Android's own "add network" screen with the details filled in, and you confirm there; Open Wi-Fi settings opens the system settings. The app does not read, scan or change your Wi-Fi connections itself and holds no Wi-Fi-changing permission. When you copy a Wi-Fi password, the app marks it as sensitive so that Android 13 and newer hide it in the clipboard preview.
A Wi-Fi password is part of the code's content, so if Keep history is on it is stored in your history on the device, like any other scan. That is one of the reasons the history is kept out of cloud backup (below).
What the app stores locally
The app keeps the following in its own private storage on the device. None of it is sent anywhere:
- Your history, while Settings → Keep history is on (it is on by default): for each code you scan, and each code you create and then save or share, its content, its format, its type, whether it came from the camera, an image or the generator, a short title, the time and whether you marked it as a favourite. The newest 5,000 entries are kept, and favourites are never removed automatically. You can delete single entries, clear the whole history (keeping favourites or not) or turn Keep history off, after which new scans and codes are no longer saved.
- your settings: theme, text size, language, scan sound and vibration, Keep history and Copy automatically;
- whether the one-time "remove ads" purchase is active, and when a 24-hour ad-free period earned from a rewarded video ends;
- a counter of how many interstitial ads have been shown, used to keep ad frequency low.
If you turn on Copy automatically (it is off by default), the content of every scan is also placed on your phone's clipboard, where other apps you use may be able to read it, as with anything you copy.
The history database and the app's settings files are excluded from Android cloud backup and
from device-to-device transfer, both on Android 12 and newer and on older versions, so they are not
copied to your Google Drive or to a new phone. Google's advertising and consent components also
keep their own settings on the device, under Google's control, and the Google Firebase components
described below keep three random identifiers in the app's private storage: a Firebase
installation ID, the Analytics app-instance ID and a Crashlytics installation ID. Unlike the list
above, these identifiers travel with the usage statistics and crash reports. Uninstalling the app
or clearing its data removes everything the app has stored, your history and these identifiers
included. Images you saved to Pictures/QR Pocket, and files you shared or exported to
other apps, are yours and are not removed.
Google ML Kit and the Code Scanner
Both ways of scanning use Google technology that works on the device:
- Scan from an image uses Google ML Kit barcode scanning. Its model is bundled inside the app, so images are processed on your phone, offline, and are not sent to Google or to the developer.
- Scan with the camera uses the Google Code Scanner, which is part of Google Play services; its module may be downloaded and updated through Google Play services. The camera image is processed by Google Play services on the device and only the decoded result is passed to QR Pocket.
Under Google's ML Kit terms, Google may collect limited usage and performance information about these features, such as which API was used, how long processing took and device and app information, to maintain and improve them. This never includes the images, the camera frames or the content of the codes.
Advertising — Google AdMob and its mediation partners
The app is free and is supported by ads served through Google AdMob (Google Ireland Limited / Google LLC, depending on your region). AdMob is embedded in the app as a software development kit, and it does collect data, independently of the developer. When ads are served, AdMob and Google's advertising partners may collect and process:
| Data | Used for |
|---|---|
| Advertising ID (a resettable identifier assigned by Android) | Ad serving, frequency capping, ad measurement, fraud prevention |
| Approximate location — coarse, derived from your IP address, not GPS | Serving ads relevant to your country or region, and legal compliance |
| Device information — model, operating system version, language, screen and network characteristics | Rendering ads correctly, ad measurement, fraud prevention |
| App interaction events — that an ad was requested, shown, clicked or closed | Ad measurement, billing advertisers, fraud prevention |
Mediation partners
The app also includes the software development kits of other advertising networks, connected through AdMob mediation: AppLovin, Unity Ads, Liftoff Monetize (Vungle), Meta Audience Network, Mintegral and Pangle. When the app asks for an ad, AdMob may pass the request to one of these partners, which then serves the ad itself. A partner that does so receives the same categories of data listed in the table above — advertising ID, approximate location derived from your IP address, device information and ad interaction events — and processes them under its own privacy policy, as an independent company:
- AppLovin Privacy Policy
- Unity Game Player and App User Privacy Policy
- Liftoff Privacy Policy
- Meta Privacy Policy
- Mintegral Privacy Policy
- Pangle Privacy Policy
Your consent choices, described under "Your advertising choices", are passed on to these partners through the standard consent signal that Google's consent form records.
The app does not request GPS or any location permission, and it does not send the content of your scans, your history, your images or your Wi-Fi details to AdMob or to any mediation partner. The developer receives no personal data from them — only aggregated, anonymous reporting such as impression and revenue totals.
Because ads require an advertising identifier, the app declares the
com.google.android.gms.permission.AD_ID permission. The ad formats and where they
appear:
- Banner — at the bottom of the Create and History tabs, below the navigation bar.
- Interstitial (full screen) — only after you have saved or shared a code you made on the Create tab: never for the first two, and at least two minutes apart.
- Rewarded video — optional, only if you choose Settings → 24 hours without ads: watching one short video removes all ads for 24 hours.
- App-open ad — when you come back to the app, at most once every four hours; never when you return from the scanner, the photo picker, a share sheet, a link you opened or another screen the app opened for you, and never over a result.
The Scan tab and the result of a scan never show an ad.
How Google handles this data is governed by Google's own policies, not by this one:
- Google Privacy Policy
- How Google uses information from sites or apps that use our services
- AdMob and third-party advertising
Usage statistics and crash reports — Google Firebase
To see how the app is used and to find and fix crashes, the developer has built two Google Firebase services into it: Google Analytics for Firebase and Firebase Crashlytics. Google provides them as the developer's data processor, and they are active only in the version of the app distributed through Google Play. The app adds nothing of its own to what they collect — no custom events, no user ID or user properties, no custom keys or log messages — so only their automatic collection applies:
| Data | Used for |
|---|---|
| App-instance ID — a random identifier that Analytics creates for this installation | Counting installations and sessions without knowing who you are |
Advertising ID — the resettable identifier described above, available to Analytics
because the app declares the AD_ID permission for AdMob |
Usage statistics; use for advertising only as far as your consent choices allow (below) |
| Approximate location — country or region, derived from your masked IP address, not GPS | Statistics by country and region |
| Device and app information — device model, operating system version, language, app version | Statistics by device, Android version, language and app version |
| Usage events — first open, sessions, screens viewed, engagement time, updates and removal of the app | How many people use the app, how often and for how long, and which screens they open |
| How the app was installed — the Google Play install referrer (for example the store listing or a campaign link) | Counting where installations come from |
| Purchase events reported by Google Play — product, name and price of the one-time "remove ads" purchase | Counting purchases; no card or payment details are included |
| Crash reports, sent only when the app crashes or hits a fatal error — the stack trace, the state of the app at that moment, device details (model, operating system version, orientation, free memory and disk space) and a random Crashlytics installation ID | Finding and fixing crashes, and counting how many installations a crash affects |
Analytics records that a screen was shown and for how long, not what you do on it, and a crash report shows where in the code the crash happened, not your content. Neither service receives the content of your scans or codes, your history, your name, your email address or any account details.
In the EEA, the UK and Switzerland, the consent form described below under "Your advertising choices" also covers Analytics: your choices there decide whether Analytics may store its identifiers on your device and whether the data may be used for advertising. Use of the data for advertising ("ad user data") and for ad personalisation stays off there until you consent. You can change your choice at any time from Settings → Privacy options; the entry appears where it is required. The app has no separate switch for the usage statistics or the crash reports; uninstalling it stops both.
Analytics keeps data linked to an installation's identifiers for no longer than 14 months; aggregated reports that contain no identifiers may be kept longer. Crashlytics keeps crash reports for 90 days.
Google processes this data on the developer's behalf, as its data processor, under the Firebase and Google Analytics data processing terms. It may be processed on Google's servers outside your country, including in the United States, and it is encrypted in transit (TLS).
Google describes these services here:
Purchases — Google Play Billing
The app offers one optional, one-time, non-consumable purchase that permanently removes ads. There is no subscription and nothing recurring.
The transaction is handled entirely by Google Play Billing. The developer never sees or receives your card number, bank details, billing address or full name. Google Play reports only aggregated sales figures, and Google Analytics for Firebase records that a purchase was made — product, name and price, with no payment details (see above). Inside the app, the purchase is recorded as a single true/false flag on your device, restored from your Google Play account when you reinstall or move to a new device. Your handling of payment data by Google is covered by the Google Privacy Policy and Google Play's terms.
The app also uses Google Play's in-app update service to check whether a newer version of the app is available, so that it can offer you the update; this check goes through the Google Play app on your phone.
Your advertising choices
If you are in the EEA, the UK or Switzerland
Before ads are requested, the app shows a consent form built with Google's User Messaging Platform, where you choose what you allow. Your choice is stored on your device by Google's component, is respected on later launches, and also applies to the mediation partners listed above.
You can change your decision at any time: open the app, go to Settings → Privacy options, and the same form reappears. You may withdraw consent there. Withdrawing consent does not disable the app; you will still be able to scan and create codes, and ads may still be shown in a non-personalised form. The same choices also apply to Google Analytics for Firebase, as described above.
If you are in a US state with a privacy law
Where a US state privacy law gives you the right to opt out of the sale or sharing of your personal information or of targeted advertising, the app uses the same Google consent tooling to offer that choice where applicable, and the Settings → Privacy options entry appears when it is required for you.
Everywhere else
The privacy options entry appears only where a consent choice is legally required, so you may not see it. You can still control advertising at the operating-system level: open Android Settings → Privacy → Ads (the exact path varies by manufacturer and Android version) to reset your advertising ID, or to delete it entirely, which stops apps from receiving a stable advertising identifier.
Removing ads completely
Buying the one-time ad removal stops ad requests from the app altogether. A rewarded video (above) stops them for 24 hours.
Permissions the app requests
INTERNET— required to fetch ads, to communicate with Google Play Billing and to send the usage statistics and crash reports described above. The content of your scans and codes is never sent over the network.ACCESS_NETWORK_STATE— lets the ad components check whether a connection is available before trying to load.com.google.android.gms.permission.AD_ID— access to the advertising identifier, used by AdMob, its mediation partners and Google Analytics for Firebase as described above.
These are the permissions the app declares itself. The Google and advertising components built into it add a few more that Android grants at installation without asking you, such as Google Play's billing and install-referrer permissions, Android's advertising-services permissions, and permissions that let an ad or analytics component check the Wi-Fi state, keep the processor awake briefly or vibrate. But the app requests no camera (scanning with the camera is done by Google Play services, as described above), storage, photos, contacts, calendar, phone, SMS, microphone, location, Wi-Fi-changing, notification or account permissions, on any Android version.
Children
This app is a general-purpose utility. It is not directed at children under 13, or under 16 in the EEA (or the equivalent minimum age in your country), it is not listed in a children's category, and it is not designed for or marketed to children. The developer does not knowingly collect any personal information from children. If you believe a child has provided personal information through the ad, analytics or crash-reporting services in this app, contact the address below and contact Google or the ad partner concerned, whose services would hold it.
Data retention
The developer runs no server and keeps no user data of its own. The usage statistics and crash reports are held by Google on the developer's behalf: Analytics data linked to an installation's identifiers for no longer than 14 months (aggregated reports without identifiers may be kept longer), and crash reports for 90 days. Data held on your device, including your history, stays there until you delete it, clear the app's data or uninstall the app. Data collected by Google through AdMob and Google Play is retained according to Google's own retention schedules, described in the Google Privacy Policy, and data collected by a mediation partner according to that partner's privacy policy, linked above.
Security
Your history and settings live in the app's private storage, which Android protects from other apps, and they are kept out of cloud backup and device transfer. The Firebase services encrypt the data they send in transit (TLS). No method of storage or transmission is perfectly secure, but because the developer receives none of your scans or codes, there is no copy of them anywhere outside your phone to protect.
Legal bases and your rights
Where the GDPR (EU/UK) applies, the legal basis for personalised advertising is your consent, collected through the form described above and withdrawable at any time. Non-personalised advertising, fraud prevention and the security of the ad services rely on legitimate interests. Processing your purchase is necessary to perform the contract you enter when you buy ad removal. The usage statistics and crash reports rely on the developer's legitimate interest in keeping the app working and understanding, in aggregate, how it is used; storing Analytics identifiers on your device and any advertising use of the data follow your choices in the consent form.
Under the GDPR, and under Turkey's KVKK (Law No. 6698) on equivalent terms, you have the right to ask whether your personal data is processed, to access it, to have it corrected or erased, to restrict or object to its processing, to data portability, and to withdraw consent. You may also lodge a complaint with your national data protection authority — in Turkey, the Kişisel Verileri Koruma Kurumu (KVKK).
The usage statistics and crash reports are pseudonymous: they carry random identifiers, never your name or email address, so the developer cannot tell which records are yours. Where the consent form is shown, you can withdraw consent at any time in Settings → Privacy options, and you can object to this processing, or ask about it, by writing to the address below. Uninstalling the app or clearing its data ends the link to the old identifiers, and data already sent then expires on the schedule above. You can also reset or delete your advertising ID in Android's settings at any time. Requests concerning advertising data must be directed to Google, or to the mediation partner concerned, as the party that holds it, using the tools in their privacy policies linked above. For anything else, or for help finding the right route, write to the address below.
Changes to this policy
If the app's data practices change — for example if a new third-party service is added — this page will be updated and the "last updated" date at the top will change. Material changes will also be reflected in the app's Google Play listing. Continuing to use the app after an update means you accept the revised policy.
This is the first version of this policy, published with the first release of the app.
Contact
For any question about this policy or about privacy in this app, write to:
This is the same address listed on the app's Google Play page. Bug reports, privacy questions and data requests all reach us here.