Pinly ← Back to site

Privacy Policy — Pinly

Effective date: 2026-08-24

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 system-level footnote: Android's font provider (a separate Google process, not Pinly) may fetch the Inter display font on first run — the same mechanism most modern apps use, and it carries none of your data.

If you read nothing else: Pinly has no servers and no analytics. Nothing leaves your phone automatically — only what you explicitly translate, export, or share, to a destination you choose.

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 PDFsApp cache (cacheDir/exports/) until you share themNo
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 daily camera allowance. 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.

Processor. The counts are handled by a third-party analytics provider acting on our behalf. They are not sold, shared for advertising, or used for any purpose other than the one above.

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.
INTERNETTwo optional uses, both off by default: the opt-in offline-translation model download described below, and anonymous usage counts if you enable them. Pinly never sends your text or any personal data.
ACCESS_NETWORK_STATELets the model download check for a connection before starting. No data leaves the device.

INTERNET is declared for one purpose: the opt-in, Pro Offline translation feature 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. The only other network use is the anonymous usage counts described above, which are also 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 use is the opt-in translation-model download described above — 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 marcusliewjy@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.