Pinly ← Back to site

Privacy Policy — Pinly

Effective date: 2026-09-10

Summary

Your content never leaves your phone. Camera frames, saved photos, your vocabulary list, and any text you translate are processed entirely on your device — the OCR model, the Chinese-English dictionary and pinyin conversion are all bundled inside the app.

Pinly collects nothing about you unless you switch it on. There are no accounts, no advertising identifiers, and no third-party trackers. Three things can put anything on the network, all optional and all off until you choose them:

One note about the software Pinly is built on. The text recognition comes from Google's ML Kit, which ships with a component that reports usage statistics about the recognizer back to Google, on a schedule, in the background. Pinly is built with that component removed, so nothing about your use of recognition is reported to anyone. Test builds made before 10 September 2026 still contained it; this policy's effective date marks the change. Anything such a build had queued but not yet sent stays in the app's private storage, where nothing can send it any more, and is removed if you clear the app's data or uninstall. The fonts are bundled inside the app, so nothing is fetched for those either.

If you read nothing else: nothing you read, write, save or photograph leaves your phone. Three requests can go out, and not one of them carries anything about you — two one-time model downloads (translation, which is off until you turn it on, and handwriting, the first time you open a writing pad), and anonymous usage counts, which are also off until you turn them on and carry no content of any kind. Everything else leaves only when you explicitly translate, export or share it, to a destination you pick.

What runs entirely on your device

What's saved on your phone

DataLocationOther apps can see it?
Saved vocab listApp-private DataStore (/data/data/com.pinly/...)No (unless device is rooted or ADB backup is used)
App preferencesApp-private DataStoreNo
Photos you capturePictures/Pinly/ in your shared galleryYes — same as any photo from the system camera. Any gallery / photo app can read them. We surface this in the onboarding and in Settings → About.
Exported PDFsThe file you picked, wherever you put itNo
Opt-in crash logsApp cache (cacheDir/crashes/) until you share themNo

What's shared, and only on your tap

Anonymous usage counts

Off by default. Until you turn on Share anonymous usage counts in Settings → Anonymous usage data, Pinly records and transmits nothing, and this whole section does not apply to you. You can turn it back off at any time; collection stops immediately.

If you turn it on, we record a small, fixed set of counts:

Alongside each count, the app sends the technical fields the analytics service needs to group them: your Android version, your language setting, Pinly's own version number, and a random session ID that is generated fresh in memory, rotates after an hour of inactivity, and is never stored — so it groups a single sitting and cannot recognise you on a later one.

What is never included: camera frames, photos, saved words or readings, translated text, file names, your location, your device or advertising ID, your IP address as a stored identifier, or anything else that identifies you or your phone. The counts cannot be linked back to a person or a device, which also means we cannot single out your data to hand back or delete on request — turning the setting off stops any further collection.

Why it exists. Pinly's free tier has limits — a number of saved words, a number of photos kept in the app, and a number of photos read per day. (Reading itself is not limited: the live camera, the clean reading page and the text reader are unlimited for everyone.) These counts are how we find out whether those limits are set fairly, instead of guessing. That is the only purpose.

Retention. Usage counts are kept for 12 months and then deleted.

Where they go. To a server we run ourselves, on infrastructure we control. There is no third-party analytics company involved and no analytics SDK in the app. The counts are never sold, never shared for advertising, and never used for any purpose other than the one above.

Our server does not record the IP address your phone connects from. Our hosting provider sees it in order to route the request, as any network does, and we neither store it nor link it to anything.

What we still do not collect

Permissions we request

PermissionWhy
CAMERARequired to show the live camera preview that Pinly's whole purpose depends on.
WRITE_EXTERNAL_STORAGE (max API 28)Legacy storage write for saving photos on Android 7-9. Silently ignored on Android 10+; we use scoped storage there.
POST_NOTIFICATIONS (Android 13+)Only requested if you turn on the optional daily review reminder — the system asks you directly, and the reminder is a quiet local notification. Never requested otherwise.
INTERNETThree uses, and no others: the opt-in offline-translation model download described below (off by default), the handwriting model the first time you open a writing pad, and anonymous usage counts if you enable them (off by default). Pinly never sends your text, your strokes, or any personal data.
ACCESS_NETWORK_STATELets the model download check for a connection before starting. No data leaves the device.

INTERNET is declared to fetch two models, and for nothing else.

Offline translation (opt-in, Pro) downloads a Chinese→English model once, after you turn on the (default-off) setting and confirm a "Download (~30 MB)?" prompt. After that, translation runs on your device and your text is never transmitted.

Handwriting downloads a Chinese ink model once, the first time you open a writing pad — you tapped "Write", and the pad tells you it is fetching. After that, reading your writing happens on your device; the strokes never leave it. We fetch it rather than ship it so that people who never write anything never pay for it in download size.

Both are one-way: a model comes in, nothing about you goes out. The only other network use is the anonymous usage counts described above, which are off unless you enable them. ACCESS_NETWORK_STATE just lets the model download check for a connection first. (Before 2026-06 the manifest removed INTERNET entirely; we softened that to enable offline translation, gated behind the consent prompt above.)

Google Play Billing

If you purchase Pinly Pro, the transaction is handled entirely by the Google Play Store app on your device, which communicates with Google's billing servers out-of-process via an Android Inter-Process Communication (AIDL) call. Pinly itself never touches the network for this — we only receive the result of the purchase (succeeded / canceled / failed) from the Play Store app.

Google's privacy policy covers what Google does with that data: <https://policies.google.com/privacy>.

Children's privacy

Pinly is intended for general audiences interested in learning Mandarin Chinese, and is intended for a general audience rather than directed at children. We do not knowingly collect data from anyone: the app collects nothing by default, and the optional usage counts contain no personal or identifying information from anyone, of any age. Pinly is rated "Everyone" in Google Play.

Third-party libraries bundled in the APK

All run on-device. None send data anywhere.

About this website

Everything above describes the app. This page, and the site it sits on, are separate — and they are the one part of Pinly you are using right now, so they get their own paragraph.

The site is static: a few HTML files and images, no accounts, no logins, no forms, and no cookies. Nothing you do here is tied to anything you do in the app; the two cannot see each other.

We use Cloudflare Web Analytics to see whether anyone is finding the site. It records aggregate page views, the referring site, and a country — it sets no cookies, stores no device or advertising identifier, and does not follow you to other sites. That is also why you are not being asked to dismiss a cookie banner: there is nothing to consent to.

Like any web server, our host sees the IP address your browser connects from in order to send you this page. It is not stored to build a profile of you and is not linked to anything in the app.

The site loads fonts from Google Fonts, which means Google's font servers receive the request for those files. If that matters to you, a content blocker will stop it and the page still reads fine in your system's own typefaces.

Changes to this policy

If we ever change what Pinly collects or transmits, we will update this document and bump the effective date above. The architecture is no-collection and on-device-by-default — the only network uses are the three described above: the translation-model download, the handwriting- model download, and the anonymous usage counts, none of which send anything about you — so any change in that direction would be a significant departure that we'd flag in the app's release notes too.

Contact

Questions about this policy or the app? Email hello.pinly@gmail.com. This is the support address for Pinly; we aim to respond within a few business days.

---

This privacy policy is required by Google Play for any app that collects user data — even when the answer is "no, we don't." Hosting it at a publicly-reachable URL is a Play Console launch requirement.