The short answer: in HandyXlate, the screenshot is never uploaded. Text recognition runs on your device. When you use an online translation engine, the only thing that leaves your phone is the recognized text — never the image it was read from.
Some apps advertise offline translation while still uploading screenshots for OCR. Those are two different things. HandyXlate runs OCR on-device, so the screenshot stays local regardless of which translation engine you pick. Online translation means the recognized text is sent — it does not mean the screen is sent.
What stays on your device
- The screen image itself. It is captured, read, and released on your phone
- Text recognition (OCR). ML Kit runs locally across five scripts: Latin, Chinese, Japanese, Korean, and Devanagari
- The block layout of your screen, so translations are placed back where the original text was
- Any saved word image, if you turn on image saving — stored in app-private storage, excluded from Android backup
What can be sent, and when
Only the recognized text, and only when you are using an online translation engine. The request contains the translated segments as text. There is no image field in it.
The default is worth stating plainly rather than hiding: one-off translations use our online engines, because they give the best quality across the 60 supported target languages. If you want nothing to leave the device at all, switch to on-device translation in settings — from then on, text recognition and translation both happen locally.
How to keep every step on your phone
- Open settings and choose on-device translation as your preferred engine
- The app downloads the language models you need automatically, over Wi-Fi by default
- On-device translation covers 59 of the 60 target languages; one language code is deliberately not supported offline
- Free users already get offline auto-translation; Premium can choose online-preferred or offline-only
Screenshot upload and accessibility permission are two separate concerns. HandyXlate also does not declare or call the AccessibilityService API — see the page on translating without an Accessibility Service for what that changes.
Questions about screenshots and privacy
Does the app upload screenshots?+
No. OCR runs on your device and the captured frame is never uploaded. Only recognized text is sent, and only when you use an online translation engine.
Is offline translation the same as not uploading screenshots?+
No, they are different things. Some apps call a mode offline while still sending screenshots to a server for OCR. In HandyXlate the screenshot is never uploaded; online translation refers only to sending the recognized text.
How do I translate without sending anything at all?+
Select on-device translation as your preferred engine in settings. Then both OCR and translation happen locally, using language models the app downloads automatically.
How many languages work on-device?+
On-device translation covers 59 of the 60 target languages. One language code is deliberately excluded offline because offline output for it is not reliable.
What permissions does it need?+
Screen capture and overlay, to see the screen and draw the translation. Notifications, for the ongoing translation service. No camera permission — photo translation hands the image over from your camera app. No Accessibility Service.
Does it contain ads?+
There is no ad SDK in the app.
Translate your screen without uploading it
HandyXlate reads the screen on your phone and places the translation back over the original. No screenshot uploads, no Accessibility Service, no ads.