Memories / Documentation

On this page

Handwriting and Text Recognition (Mobile)

The Memories mobile editor can convert handwriting and photos into text. All recognition takes place on this device; images, strokes, and recognition results are never sent to a server.

Handwriting

Tap the pen icon in the editor toolbar to open the canvas. Tools include a pen, an eraser (which removes strokes it touches), undo, and clear. After selecting Chinese or English:

  • Recognize as text: Uses Google ML Kit digital ink recognition (google_mlkit_digital_ink_recognition). The language model is downloaded once, only after your confirmation; recognition itself runs on the device. Results first appear in an editable preview and are inserted at the cursor after confirmation.
  • Save as image (memory editor only): Saves the canvas as a PNG. When the memory is saved, each image is stored as a separate private encrypted file asset, titled " (Handwriting)". In-memory data is cleared after saving.</li> </ul> <h2 data-section="section-3" id="scan-text-ocr">Scan Text (OCR)<span aria-hidden="true" class="docs-anchor" id="section-3"></span><span aria-hidden="true" class="docs-anchor" id="扫描文字ocr"></span></h2> <p>Tap the scan icon and choose the camera, photo library, or an image file. Recognition uses the built-in Chinese and Latin-script models of <code>google_mlkit_text_recognition</code> (on iOS, ML Kit calls on-device capabilities), selecting the result with more characters. An editable preview appears before insertion. Temporary images created by the camera or photo library are deleted immediately after recognition; files you select yourself from a desktop filesystem are not deleted.</p> <h2 data-section="section-4" id="protected-cards">Protected Cards<span aria-hidden="true" class="docs-anchor" id="section-4"></span><span aria-hidden="true" class="docs-anchor" id="受保护卡片"></span></h2> <p>Hidden secret fields in protected-card forms also offer handwriting and scan buttons. They generate text only (without retaining images), show the preview only within the app, and insert the result directly into the hidden field.</p> <h2 data-section="section-5" id="permissions">Permissions<span aria-hidden="true" class="docs-anchor" id="section-5"></span><span aria-hidden="true" class="docs-anchor" id="权限"></span></h2> <ul> <li>Android: <code>CAMERA</code> (requested when taking a photo). The system photo picker does not require storage permission.</li> <li>iOS: <code>NSCameraUsageDescription</code> and <code>NSPhotoLibraryUsageDescription</code>.</li> </ul> <p>If permission is denied, the app explains how to enable it in Settings.</p></article><footer class="docs-footer"><a href="/docs/">Documentation home</a><a href="#main">Back to top ↑</a></footer></main></div></body></html>