{"_id":"appium-android-ime","_rev":"30-6e9e90cc321baa6be915649cd8a7be1e","name":"appium-android-ime","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"appium-android-ime","version":"1.0.0","keywords":["appium","test","app","ime","android"],"author":{"name":"https://github.com/imurchie"},"license":"apache-2.0","_id":"appium-android-ime@1.0.0","maintainers":[{"name":"jonahss","email":"jonahss@gmail.com"}],"homepage":"https://github.com/appium/io.appium.android.ime","bugs":{"url":"https://github.com/appium/io.appium.android.ime/issues"},"dist":{"shasum":"7ea8761574893ba9409f5dc475bfc8ef390796f0","tarball":"https://registry.npmjs.org/appium-android-ime/-/appium-android-ime-1.0.0.tgz","integrity":"sha512-EpwKj1rt7q3L3HZBt6lqfsh3SIuVpfp3KwciVMJikdgsbH/V/VUAjBgo9qgAnYUBEq/cWTlDM7AIMRa/S3qyeQ==","signatures":[{"sig":"MEYCIQDNevZdHOQA72eOuXzCMAYe0zqg02piiVKh2+/uzkF2WwIhAM5DbmfaaZqnE9T6DtMeOHXZhH0sR0cFL8+bqITplnW8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"7ea8761574893ba9409f5dc475bfc8ef390796f0","gitHead":"4a722d3232d4ae772a173a9a9417f5ee87fd33c0","scripts":{"prepublish":"android update project --subprojects --target android-19 --path . --name UnicodeIME && ant clean debug"},"_npmUser":{"name":"jonahss","email":"jonahss@gmail.com"},"deprecated":"Moved to io.appium.settings","repository":{"url":"https://github.com/appium/io.appium.android.ime.git","type":"git"},"_npmVersion":"2.0.0","description":"Android Input Manager for testing Unicode","directories":{}},"1.0.1":{"name":"appium-android-ime","version":"1.0.1","keywords":["appium","test","app","ime","android"],"author":{"name":"https://github.com/imurchie"},"license":"apache-2.0","_id":"appium-android-ime@1.0.1","maintainers":[{"name":"jonahss","email":"jonahss@gmail.com"}],"homepage":"https://github.com/appium/io.appium.android.ime","bugs":{"url":"https://github.com/appium/io.appium.android.ime/issues"},"dist":{"shasum":"29e1c69340e230b79c0affa59600f14850e53edb","tarball":"https://registry.npmjs.org/appium-android-ime/-/appium-android-ime-1.0.1.tgz","integrity":"sha512-GbiLKrAbCOHQ25cu1JETIGqT3Q337eDtOlEj9fz5ExsNBlGybkmGbAr9hXijm7R8NfO89ct+fVeBdvRqG3bjMg==","signatures":[{"sig":"MEYCIQDwrNGFyiU0hDWqkgvAwc8huZ3YkHAGDZIPljWK+KJNwgIhAJcl8RXzAaeHHjjI4uhUxgaY0crg/kn1Jc9RC9MtGcUy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"bin/UnicodeIME-debug.apk","_from":".","_shasum":"29e1c69340e230b79c0affa59600f14850e53edb","gitHead":"bc4a395dfb2833f2037541c8f6558c3b117da381","scripts":{"prepublish":"android update project --subprojects --target android-19 --path . --name UnicodeIME && ant clean debug"},"_npmUser":{"name":"jonahss","email":"jonahss@gmail.com"},"deprecated":"Moved to io.appium.settings","repository":{"url":"https://github.com/appium/io.appium.android.ime.git","type":"git"},"_npmVersion":"2.0.0","description":"Android Input Manager for testing Unicode","directories":{}},"1.0.2":{"name":"appium-android-ime","version":"1.0.2","keywords":["appium","test","app","ime","android"],"author":{"name":"https://github.com/imurchie"},"license":"apache-2.0","_id":"appium-android-ime@1.0.2","maintainers":[{"name":"jonahss","email":"jonahss@gmail.com"}],"homepage":"https://github.com/appium/io.appium.android.ime","bugs":{"url":"https://github.com/appium/io.appium.android.ime/issues"},"dist":{"shasum":"e612cc305116b7cd09f636a98cefac4edef7b3e9","tarball":"https://registry.npmjs.org/appium-android-ime/-/appium-android-ime-1.0.2.tgz","integrity":"sha512-QlF8eGPStEKHk0kNqhkC1B4UxQqC+NdG2V8mGG/v7jFcnW8ZMRcN3LkOKsuSsleolZDWJpgJ2U3TTQsvqN2VVQ==","signatures":[{"sig":"MEYCIQC8dDkcgwv1UPDp+5bKMd28zImbgxAVA3+rMAa+U2+WLgIhAK1SYWKEhxFj8J0IRU1VSu+kwDkzp+pEksG3CPFjhIUC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"bin/UnicodeIME-debug.apk","_from":".","_shasum":"e612cc305116b7cd09f636a98cefac4edef7b3e9","gitHead":"02d836a8ae468e2081b825500e9e6844cb9ac571","scripts":{"prepublish":"android update project --subprojects --target android-19 --path . --name UnicodeIME && ant clean debug"},"_npmUser":{"name":"jonahss","email":"jonahss@gmail.com"},"deprecated":"Moved to io.appium.settings","repository":{"url":"https://github.com/appium/io.appium.android.ime.git","type":"git"},"_npmVersion":"2.0.0","description":"Android Input Manager for testing Unicode","directories":{}},"2.0.0":{"name":"appium-android-ime","version":"2.0.0","keywords":["appium","test","app","ime","android"],"author":{"name":"https://github.com/imurchie"},"license":"apache-2.0","_id":"appium-android-ime@2.0.0","maintainers":[{"name":"jonahss","email":"jonahss@gmail.com"},{"name":"imurchie","email":"isaac@saucelabs.com"},{"name":"jlipps","email":"jlipps@gmail.com"},{"name":"moizjv","email":"moizjv@gmail.com"},{"name":"sebv","email":"seb.vincent@gmail.com"},{"name":"bootstraponline","email":"npm@bootstraponline.com"}],"homepage":"https://github.com/appium/io.appium.android.ime","bugs":{"url":"https://github.com/appium/io.appium.android.ime/issues"},"dist":{"shasum":"e4127fd4553e01819900769a8446b499e6328289","tarball":"https://registry.npmjs.org/appium-android-ime/-/appium-android-ime-2.0.0.tgz","integrity":"sha512-j3g5Gdo8V14ZTnOiHIH7IRY8oiCYcajZYg1Cc6zcd4vB9AimMT3jjkh03MzpuyH92UrBMPQt25xJaWKtF6Aomw==","signatures":[{"sig":"MEQCIAe9cyowzFKjJ7vxQ/sz6qHCZlZIcIUrSnNi1BlTMBhdAiBZ0BG+qFWNS5UHfnWlgG96ubnGrOhW8kuiRYu8RUwNXQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"e4127fd4553e01819900769a8446b499e6328289","gitHead":"67c4eddcc19b0a01a482a0a5e819278939da157f","scripts":{"prepublish":"android update project --subprojects --target android-19 --path . --name UnicodeIME && ant clean debug"},"_npmUser":{"name":"jlipps","email":"jlipps@gmail.com"},"deprecated":"Moved to io.appium.settings","repository":{"url":"git+https://github.com/appium/io.appium.android.ime.git","type":"git"},"_npmVersion":"2.10.0","description":"Android Input Manager for testing Unicode","directories":{},"_nodeVersion":"0.12.2"}},"time":{"created":"2014-10-04T00:56:21.070Z","modified":"2026-02-16T12:05:34.702Z","1.0.0":"2014-10-04T00:56:21.070Z","1.0.1":"2014-10-04T01:02:39.231Z","1.0.2":"2014-10-10T22:54:53.987Z","2.0.0":"2015-07-11T09:13:09.751Z"},"bugs":{"url":"https://github.com/appium/io.appium.android.ime/issues"},"author":{"name":"https://github.com/imurchie"},"license":"apache-2.0","homepage":"https://github.com/appium/io.appium.android.ime","keywords":["appium","test","app","ime","android"],"repository":{"url":"git+https://github.com/appium/io.appium.android.ime.git","type":"git"},"description":"Android Input Manager for testing Unicode","maintainers":[{"email":"jlipps@gmail.com","name":"jlipps"},{"email":"mokhnach@gmail.com","name":"nick.mokhnach"},{"email":"fly.49.89.over@gmail.com","name":"kazucocoa"},{"email":"isaac@saucelabs.com","name":"imurchie"},{"email":"dan@saucelabs.com","name":"dangraham"}],"readme":"# io.appium.android.ime\n\nThe Android emulator does not play well with non-ASCII characters. Text sent to the emulator through Selenium will be filtered through the default keyboard, which means that things get stripped down to ASCII. \"परीक्षणम्\" (\"Testing\" in Sanskrit) becomes \"prksnm\".\n\nTo get around this, this [input method](http://developer.android.com/guide/topics/text/creating-input-method.html), when set as the default, catches Unicode text encoded as [Modified UTF-7](http://tools.ietf.org/html/rfc3501) and recodes it as Unicode. Text input fields can then receive and send any characters that Unicode can encode.\n\nTo install, with the emulator running execute the following:\n\n```shell\nant debug\nadb uninstall io.appium.android.ime\nadb install bin/UnicodeIME-debug.apk\n```\n\nThis builds the application, removes any old version of it (if installed), and then installs the recently built one.\n\nOnce the input method is installed on the emulator, execute the following:\n\n```shell\nabd shell ime enable io.appium.android.ime/.UnicodeIME\nadb shell ime set io.appium.android.ime/.UnicodeIME\n```\n\n(Alternatively, on the device, access `Settings`, then `Language & Input`. Make sure `Appium Android Input Manager for Unicode` is selected, and finally go to `Default` and set it to `Appium Android Input Manager for Unicode`.)\n\nYour device is now set to receive encoded text from [Appium](http://appium.io/)!\n\nOn the Appium Bootstrap side, there needs to be an encoding of the text into Modified UTF-7, sending encoded text to the device through `setText`:\n\n```java\nimport java.nio.charset.Charset;\n\n\npublic class UnicodeEncoder {\n    private static final Charset M_UTF7 = Charset.forName(\"x-IMAP-mailbox-name\");\n    private static final Charset ASCII  = Charset.forName(\"US-ASCII\");\n\n\n    public static String encode(String text) {\n        byte[] encoded = text.getBytes(M_UTF7);\n        return new String(encoded, ASCII);\n    }\n}\n```\n\n## Caveats\n\nThe encoding system uses the characters `&` and `-` to demarcate encoded text, which means that there is the potential for those characters within otherwise normal text to be handled wierdly. This can be obviated by encoding any text with `&` in it.\n\nIf you set the text into the same edit field multiple times without resetting, the IME is recycled. This means that if a `&` is inserted, and at a later point a `-` is inserted, the text between will be placed before the text of the last call. Keep, therefore, your tests atomic.\n\nThe Android emulator cannot handle certain scripts, though the text is there and can be retrieved with no problems. The problem is only display (generally, it comes out looking like whitespace).\n","readmeFilename":"README.md"}