
Security News
npm Adopts OIDC for Trusted Publishing in CI/CD Workflows
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
appium-android-ime
Advanced tools
Supply Chain Security
Vulnerability
Quality
Maintenance
License
Deprecated
MaintenanceThe maintainer of the package marked it as deprecated. This could indicate that a single version should not be used, or that the package is no longer maintained and any new vulnerabilities will not be fixed.
Found 1 instance in 1 package
Unpopular package
QualityThis package is not very popular.
Found 1 instance in 1 package
The 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".
To get around this, this input method, when set as the default, catches Unicode text encoded as Modified UTF-7 and recodes it as Unicode. Text input fields can then receive and send any characters that Unicode can encode.
To install, with the emulator running execute the following:
ant debug
adb uninstall io.appium.android.ime
adb install bin/UnicodeIME-debug.apk
This builds the application, removes any old version of it (if installed), and then installs the recently built one.
Once the input method is installed on the emulator, execute the following:
abd shell ime enable io.appium.android.ime/.UnicodeIME
adb shell ime set io.appium.android.ime/.UnicodeIME
(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
.)
Your device is now set to receive encoded text from Appium!
On 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
:
import java.nio.charset.Charset;
public class UnicodeEncoder {
private static final Charset M_UTF7 = Charset.forName("x-IMAP-mailbox-name");
private static final Charset ASCII = Charset.forName("US-ASCII");
public static String encode(String text) {
byte[] encoded = text.getBytes(M_UTF7);
return new String(encoded, ASCII);
}
}
The 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.
If 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.
The 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).
FAQs
Android Input Manager for testing Unicode
The npm package appium-android-ime receives a total of 24 weekly downloads. As such, appium-android-ime popularity was classified as not popular.
We found that appium-android-ime demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 6 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
Research
/Security News
A RubyGems malware campaign used 60 malicious packages posing as automation tools to steal credentials from social media and marketing tool users.
Security News
The CNA Scorecard ranks CVE issuers by data completeness, revealing major gaps in patch info and software identifiers across thousands of vulnerabilities.