Pleco for Android 3.2.13 Beta 2


Staff member
So this is now turning into a rather major update, but due to the lack of cross-platform code changes we're continuing to call it 3.2.13. The Screen Reader feature turned out way better than I expected - one of the most satisfying things we've ever done on Android, as a matter of fact.

If you previously signed up for beta testing through Google Play, this new beta should show up as an update within a few hours. Otherwise, you can get it:

a) Through Google Play. Sign up for our Android Beta Testing group at:!forum/pleco-android-beta-testing

And then sign up for beta versions of Pleco at:

after which you should be able to get it right from them.

b) Directly from our website; APK at:

There's sadly no way to do anything like Screen Reader or Screen OCR on iOS at the moment - Apple doesn't allow third party accessibility readers or screen capture apps, and given the horrendous security implications of somebody making a malicious one I'm not sure that's such a bad idea. But we are working on a Share Extension for iOS 9, so you'll be able to pull up text in a popup Pleco dictionary or document reader via the new system copy menu "Share" command rather quickly via that at least.

Changes in Beta 2:
  • Added a new "Screen Reader" function (available through the sidebar menu). This uses the Android accessibility infrastructure to pull the text of whatever app you're looking at right now and overlay the screen with a tap-lookup-friendly Pleco version; we add a little floating 'reader' button overlay to the screen while it's running. (you can move that button wherever you like by dragging it, and dismiss it with a long press)

    It works on Android 4.1 or later, though support in specific apps varies - doesn't work in the pre-Chrome Android Browser but does seem to work reasonably well in Chrome, works great in WeChat, doesn't work in Kindle (big disappointment, that one) but does work in Google Play Books. Here are some screenshots from WeChat:

    device-2015-07-15-005443.png device-2015-07-15-005452.png device-2015-07-15-005600.png

    If you find that a specific app gives you little or no information (particularly problematic in apps like Chrome with very complicated text layouts), tap back or tap outside of the readable areas to dismiss this, wait a second or two, then tap on the reader button again.

    This actually turned out way better than we expected it to, and we're excited enough about its potential that we expect it to play a major role in our future Android development plans. While we aren't taking advantage of this yet, the accessibility system also gives us a great deal of information about which specific app we're running in and gives us notifications when bits of the UI change, so one thing we plan to explore in the future is developing app-specific overlays - trying to match the original app's typography etc more exactly and updating the screen when it changes. We can even exercise a degree of 'remote control' over apps, so it's possible we might be able to use this to build an entire Pleco skin around WeChat; WeChat would still be running, but it would be completely overlaid with a Pleco UI that would let you not only look up words but even compose replies.

    We're excited enough about what we can do with this and eager enough to hear what you all think of it that we're making this feature completely free, at least in its current form - we may make a paid 'enhanced version' of it at some point, either as part of the reader add-on or as a separate add-on, or possibly even charge for app-specific UI skins if those prove a popular concept (would help to justify developing them for more obscure apps), but our intent is to give everybody something reasonably usable in our free app.

    Please do let us know if it behaves oddly or doesn't work at all in a particular app - we can't necessarily do anything if an app doesn't support accessibility, but if it supports it but produces confusing results we can hopefully do something about that. Please also let us know if you notice any performance problems when this is running - we think we've got it optimized pretty well but there's probably something we've missed.

    We're stil tweaking the UI a bit - definitely need a better icon and we also need an easier way to make the floating button appear / disappear (debating between a dedicated launcher shortcut and a persistent notification).

  • Also added a "Screen OCR" function - this one is for Android 5 only (earlier versions didn't support the necessary API). It basically just takes a screenshot and instantly OCRs it, popping up a simplified version of our OCR interface with a popup bubble for looking up words. Less reliable than Screen Reader and without quite as much future potential, but useful for apps where Screen Reader doesn't work well. This one is not free, but it's included with our OCR add-on, so no extra purchase needed if you already have that. Like Screen Reader it's accessed via a floating button, and you can turn either reader option on or off with a long press of that floating button. Screenshots:

    device-2015-07-06-003847.png device-2015-07-06-003906.png device-2015-07-06-003919.png

  • Added PDF support to both the document reader and OCR - open a PDF in the document reader to view embedded text, open one in Still OCR to recognize it as a series of images.
  • Moved clipboard monitoring to a system service and made it restart automatically when you reboot your phone if it was running before you rebooted. We also do that with Screen OCR / Screen Reader.
  • Improved live OCR accuracy on devices with higher-resolution screens (we think), using a simple trick from our iOS app that was yet another Thing We Forgot To Port To Android For Way Too Many Years.
  • Inspired by Screen Reader, went through Pleco's own UI and added accessibility text to all of the parts of our UI that didn't already have it - we're ashamed that it took us this long to do that, but in any event our visually impaired users should now have a slightly easier time finding their way around our UI. If you're an Android developer yourself Screen Reader is actually a very handy tool for giving yourself a quick accessibility tuneup - just go through each screen, run Screen Reader, and add content description texts to any UI controls that Screen Reader doesn't see.
  • Added an input method switching option to the tap-hold popup menu in edit fields.
  • Fixed (we hope) slowdowns in the clipboard reader in ARC Welder.
  • Fixed an error when trying to make or restore Google Play in-app purchases.
  • Fixed a bug that kept Zhuyin neutral tone dots from appearing correctly in ruby Zhuyin in the entry list and popup reader for syllables with 3 Zhuyin characters.
  • Fixed a bug that made the audio play button in headwords disappear when using ruby Zhuyin and no Pinyin.
  • Fixed a couple more crashing bugs.
Changes in Beta 1:
  • Added support for Ruby Zhuyin display (small Zhuyin text next to individual characters), in honor of / preparation for the release of the Taiwan MoE dictionary alongside our finished 3.2.13 update. (we've been told this is the biggest missing feature in Pleco compared to the standalone MoEDict app)

    We've done this pretty comprehensively - can be enabled not only in dictionary entry headers but also in search results, example sentences, flashcards, and the popup reader - and are planning to do a lot more with it in the future (automatically adding it to reader documents, e.g.) and to extend it to not only Zhuyin but to Pinyin and to Jyutping/Yale for Cantonese (though these would appear above/below rather than next to characters). Enable it in its dedicated options screen in Settings / Languages. Note that this will prevent regular Zhuyin from displaying if you've set that as one of your pronunciation systems, but if you use Pinyin as your pronunciation system and also enable side Zhuyin the two will happily coexist.

    Please let us know if you notice any weird behavior with this or if you have any aesthetic objections to the way we display Zhuyin (have checked against several apps that we've been told are good examples of it and we think we've got it working pretty well now, but can easily tweak it if not since it's totally custom drawing code, and even if it's working perfectly on our devices it may be that a particular manufacturer has screwed up font rendering in such a way that it displays much less nicely on their devices).

    Also, please let us know which specific places you end up enabling Ruby Zhuyin - we'd really like to have less than 5 checkboxes for this but we're not sure yet where it will work well / badly.
  • Added native x86 code libraries for the sake of people with x86-based tablets or using desktop emulation solutions like ARC Welder - Pleco should be screaming fast on those now. Note that the text-to-speech add-ons are still ARM-only, so if your device can't run ARM code in emulation, most of Pleco should work (including handwriting and OCR) but text-to-speech will probably still refuse to load.
  • Also for the sake of our ARC Welding friends, added three new control key shortcuts; control-F jumps you back to the search screen with an open empty search bar regardless of where you are in our app, control-D adds the current word to flashcards and control-O plays audio.
  • Added an option in settings to use old-fashioned file open / save dialogs even on devices that are running Android 4.4 or later and ought to have access to the newer SAF ones, since those don't work correctly in some forked versions of Android. Automatically enabled them on ARC Welder since they're currently broken on that.
  • Added a male Cantonese audio add-on, and a new Cantonese audio gender preference in Settings / Audio.
  • Did some preliminary optimization for Android M, including a few bug fixes, support for more gracefully handling denied permissions (though we can't ship all of that until they release a final Android M developer kit), and a migration away from the now no longer supported Apache HTTP framework for network connections.
  • Added an item to the Categories section of Card Info to let you add a card to the current default category with a single tap, and made Card Info an option for duplicate handling in settings / flashcards, this as part of a longer-term plan to replace the duplicate prompt with Card Info altogether by making all of the prompt's features available in Card Info.
  • Made the color of full-text highlights lighter for better visibility against tinted example sentences.
  • Moved the loading of user dictionaries to a background thread, which should mean faster startup and a fix for the annoying bug that sometimes caused user dictionaries to be buried at the bottom of Manage Dicts even if you'd previously put them elsewhere.
  • Migrated to a new settings storage system which we hope will make settings / history a bit more immune to accidental deletion on buggy or misbehaving or extremely-short-on-memory devices.
  • Added long-click category selection support to the optional + buttons next to example sentences in definitions and the optional ones in individual dictionaries' definition headers. (you can enable both of those in Settings / Definition Screen if you didn't know they existed before)
  • Completely overhauled the way we handle text selection in our search field - now, long-pressing it will always (and we hope reliably) bring up a Pleco edit menu with copy / paste / select all as appropriate, mimicking the behavior on Android M and doing it in a more consistent way than we've managed to achieve relying on Android itself to produce that behavior.
  • Added the ability to deliver updated versions of CC-CEDICT through Google Play without updating the rest of our app, which should let us update it for GPlay users much more frequently than we could otherwise. (we're going to make these available to other users too, but probably with some sort of opt-in registration process since otherwise every time we updated it we'd rack up a few TB worth of CDN bandwidth bills)
  • Added tone coloring in a few places it didn't appear before, most importantly in English-Chinese dictionary definitions - this requires a database update, we've got one available for NWP right now and will have one for ABC E-C shortly too.
  • Added internal support for masking Registration IDs for use in school / institutional copies of Pleco where you don't want your users to be able to see them (contact us if you'd like to set that up for your institution).
  • Made the number strings after flashcard backup files appear as sensible year-month-day-hour-minute numbers instead of Unix epoch times, and added them to flashcard exports by default (now that we have an option to remove them in settings / miscellaneous).
  • Got rid of the annoying "tap with two fingers" text in the non-handwriting-input flashcard sketch box.
  • Made Pinyin/Zhuyin no longer display in "VARIANT OF" items with pronunciation system set to "none," and updated "YY" in Cantonese variants to "YL"/"JP" to match how they appear in dictionary headers.
  • Added a new URL scheme for direct access to the dictionary definition screen:

    plecoapi://x-callback-url/df?hw=(characters)&py=(pinyin, optional, used to differentiate)&sec=(tab to jump to,dict|stroke|chars|words|sents, optional)

    If you want to fall back on the old search result scheme q?s for people with older versions of Pleco, use:

    plecoapi://x-callback-url/q?s=(characters)&mode=df&hw=(characters)&py=(pinyin, optional, used to differentiate)&sec=(tab to jump to,dict|stroke|chars|words|sents, optional)

    Both identical to our iOS app for easy use by website creators.
  • Also added a new URL scheme for direct download and import of flashcard lists:

    plecoapi://x-callback-url/fl?u=(URL-encoded URL of the list to download)

    Currently only UTF-8 encoded text lists are supported. And again, identical to our iOS app.
  • Moved to a new system for saving / opening still OCR photos taken with "take picture" which we hope will work more reliably on some forked Android versions (and on Android M).
  • Added 'conceal handwriting until done' and 'Enter concealed immediately' options in Test Settings for fill-in-the-blanks handwriting tests, letting you prevent the handwriting recognizer from giving you hints to the correct character; with the former option enabled, you'll only see results in the recognizer when you tap with two fingers to clear, and with the latter, the resulting character will also be entered immediately so you don't have a chance to correct it if you screwed up.
  • Made the definition screen refresh itself correctly after adding or deleting a user dictionary entry.
  • Made incorrect answer characters in flashcard fill-in-the-blanks tests tappable so you can get to their definition screens and find out more about them.
  • Made font sizes in the sidebar menu scale up if your overall Android font size setting is set to something higher than the default.
  • Added an option in Settings / Miscellaneous to put a clipboard monitor toggle at the top of the drawer menu for more convenient access.
  • Hid stroke order for the opposite character set if Pleco is only configured to display one set in the headword.
  • Fixed a bug that kept the initial file download dialog from being correctly themed for Android 5.
  • Fixed a bug that made the text editing cursor in the search field invisible on some devices.
  • Fixed a bug that could cause flashcard export files that were overwriting previous files with the same name to leave behind some data from the older file.
  • Fixed a bug that made the onscreen back button in OCR fail to trigger correctly after rotating the screen.
  • Fixed a bug that made the onscreen back button appear white even against light-colored themes on Android M (and sometimes on 5.1).
  • Fixed a bug that could cause the edit entry screen to prompt you to save changes even if you hadn't made any.
  • Fixed a bug that could cause the contents of flashcard edit fields to be reset on returning from another screen.
  • Fixed a bug that prevented XML flashcard files from importing correctly on newer devices.
  • Fixed a bug that could cause custom entries / flashcards with numbers in them to lose their correct tone coloring after an edit.
  • Fixed a bug that could prevent headwords in Hangul or Kana in C-E flashcards from being magnified correctly.
  • Fixed a bug that prevented super-rare / image characters like old character forms in Grand Ricci Histoire from rendering correctly in Night Mode.
  • Fixed a bug that made Zhuyin characters enlarge along with Chinese characters with the "larger Chinese" option enabled.
  • Fixed a bug that prevented copyright strings in user dictionaries from saving correctly.
  • Fixed a bug that could cause a user dictionary to fail to be created if its name was identical to that of a previous user dictionary.
  • Made the "full-text only" flag for dictionary groups work regardless of the "Integrate C-E Fulltext" / "Integrate E-C Fulltext" settings, part of our long-term transition to a simpler and more group-driven dictionary management system.
  • Fixed a bug that prevented punctuation and extended Unicode characters from carrying through to the other fields in an auto-filled custom card / dictionary entry composition screen.
  • Fixed (we think) a bug that could sometimes cause the input method selection bar to fail to reappear on returning from a definition screen.
  • Fixed a bug that kept flashcard test definitions from updating immediately after changing the dictionary a flashcard is linked to via the separate dictionary screen.
  • Fixed a bug that could prevent categories in text exports from exporting in the correct order.
  • Fixed a bug that made the flashcard session switch dictionary option remain grayed out and unaccessible for custom cards for which exactly 1 dictionary match was available.
  • Fixed a bug that could cause a UNI entry with the wrong pronunciation to display when searching for a particular Mandarin or Cantonese syllable. (character would be correct but it would be a different pronunciation for a 多音字)
  • Fixed a bug that could cause statistics to be included in XML flashcard exports even with the option for that disabled.
  • Fixed a bug that could cause incorrect counts of correct/incorrect cards to appear after undoing a card score when repeating incorrect cards.
  • Fixed a bug that could sometimes cause full-text highlights in the result list to not match up with the words being highlighted. (most often with full-text English searches in E-C dictionaries)
  • Fixed a couple of minor bugs relating to headword / pronunciation text formatting.
  • Fixed a bug that prevented the creation of flashcards from example sentences in English-Chinese dictionaries.
Last edited:


Blank search screen caused by clipboard monitoring is fixed.

Nice! Screen reader is much better user experience than I expected!
- I don't know if it makes sense, but how about not showing blocks which only contains english words?
- I often see a huge web view block covering the whole screen.
- Volume buttons don't work when in screen reader.
Last edited:


Staff member
@Taichi - thanks!

Limiting to Chinese only is certainly possible, yes - we had English on for the sake of debugging but we're not sure if it makes sense to keep it in the release app since it does tend to add to the clutter a bit and you can see the actual English underneath anyway.

The web view blocks are hard to work around - basically Chrome has a bit of an issue with overlapping regions, instead of showing text precisely where it is on the screen it'll often stretch it to cover a considerably larger area, or if for example a link wraps between two lines it'll create a box that encompasses both the end of one line and the start of the next and tell us that the text appears in that giant box. So our best workaround at the moment is to simply merge the text (we do know the reading order) when we're confronted with a complicated set of overlapping boxes like that. We're probably still going to bring Web Reader to Android in the not-too-distant future so we're not hugely worried about getting Chrome working perfectly but we'd certainly like to do better if we can.

Good note on volume buttons, we have to take over all of the hardware buttons in order to intercept back button presses but we probably need more code to send other button presses back to the system when we don't use them.
I notice that in wechat when I use screen reader on a really long message, the layout doesn't match. I think the screen reader try to fit the whole message in one screen. It makes the text really small.


Staff member
Hmm... which Android version are you using? Newer iterations of accessibility tend to do a better job with confining text to what's visible on the screen. We may want to consider making fields scrollable in some cases though, or trying to figure out what portion of the box is actually visible and truncating the text based on that.
Last edited:


Staff member
Interesting - might make sense to have a floating 'bring this up in a scrolling reader window' button for these cases.


I have problems to activate Screen Reader:
- Screen Reader (Service Inactive) - Yes
- Input Support/Service (Pleco Screen Reader Off) - On
- Use Pleco Screen Reader (Allow TalkBack etc.) - OK
- TTS Language different from System Language - OK
- What now? I can choose between Samsung Text-to-Speech and Google Text-to-Speech (default), but have no idea what that has to do with a Screen Reader and therefore have no idea what to do (Samsung SM-T520, Android 4.4.2).

Pleco seems to be slower a little bit everywhere.


Staff member
Sorry for the confusion. You actually want to enable just one option under Accessibility - "Pleco Screen Reader"; everything else should stay at whatever it was before. Those other options may be part of the reason for the slowdown.

With that option in Accessibility enabled, go back into Pleco and choose the "Screen Reader" option and it should then work correctly.

We neglected to automatically turn on Screen Reader after you enable the accessibility service from that prompt but we've already fixed that for Beta 3.
Last edited:


As I have a german version of Android, the only place where I find Pleco Screen Reader is "Eingabehilfe/Dienste" (whatever that is in english, it could be something like "Input Support/Service"). But as I wrote: I cannot activate this service (which is marked Off), because then I am asked: You want to use Pleco Screen Reader? And OK leads to the question above with the TTS and the system language.


I changed Text-to-Speech (Google) from english to german, now when I want to activate Pleco Screen Reader in the Android Settings, after the question You want to use Pleco Screen Reader? I get the question "TalkBack and the following options cannot be activated at the same time: assist menu, Smart Screen, interactive monitoring, Multi Window, Gestures. After I agreed, I was able to activate the Screen Reader in both Android and Pleco.


Sorry to ask again - I have the reader button now activated and tried 2 applications: with Chrome I opened several chinese news channels, but when I tapped the reader button, I only got lots of empty rectangles, no information other than pictures or icons. I then tried to open with an editor a *.txt file with chinese text (UTF-8). Tapping on the reader button lead to a single empty rectangle.


Staff member
With Chrome, try it a few times, waiting a few seconds between each - does it behave better then? Chrome can sometimes take a little time to populate its accessibility data.

With the editor, what app was this? It might simply not support accessibility.


As editor I tried Hancom Word 2014, Hancom Word 2014 Viewer, ES Notiz-Editor, Hancom Cell 2014, Text Maker Mobile Free, Google Mail.

With Chrome I had many tries, but I always got empty rectangles.


Staff member
Sorry, so are all of the accessibility options turned off now besides Pleco? Or are some still enabled? I'm trying to reproduce your problem here but haven't had any luck so far - Chrome and Gmail should definitely work at least.


Sorry, so are all of the accessibility options turned off now besides Pleco? Or are some still enabled? I'm trying to reproduce your problem here but haven't had any luck so far - Chrome and Gmail should definitely work at least.
I turned off all options. I still cannot see any text in the rectangles, but if I tap in the empty rectangle, a dictionary like in Pleco File Reader is opened, and the tapped text is visible. I can scroll through the invisible text with the cursor. After some scrolling through the dictionaries Pleco crashed, and I had to shut off the tablet, because the Report/OK buttons were inaccessible.

2015-07-16 07.19.39.png