UI Manager

EMDK For Xamarin - 1.0

Overview

The UiMgr provides control of miscellaneous UI configuration settings, such as those for language and locale, the notification pulldown, Quick Settings controls, default input device and Clipboard behavior.

Android devices contain a variety of System applications with UI elements spread throughout the OS. In some cases, one or more of these "standard" UI elements are undesireable for devices deployed in an enterprise, or may be thought to hinder the productivity of device users engaged in specific business tasks.

The UiMgr provides control over these various UI elements as requested by customers because the default Android behaviors and/or controls were deemed unacceptable or inadequate.

Main Functionality

  • Enable or Disable use of the following:
    • Quick Settings for user access to Wi-Fi, Bluetooth and other settings
    • Clipboard function, which allows a device user to copy and paste information between applications
    • The AutoCorrect function, which stores commonly entered words and allows them to be entered instead of similar words that were mistyped
    • The Home Key function, which exits current application and presents the Home Screen application
    • The Bluetooth Paring pop-up feature, which requests device-user involvement even if an application has supplied all required pairing information
  • Configure localization settings to:
    • Set the Current Locale for a desired language and region
    • Set the Default Input Method to enhance entry of localized data
  • Clear the Clipboard, which discards any prior data that might have been copied

Clipboard

Controls whether the Clipboard function can be used, potentially enabling a device user to move data from one app to another.

Parm Name: ClipBoardUsage

Option Name Description Requires
0 Do not change This value (or the absence of this parm from the XML) will cause no changes as to whether the Clipboard function can be used; any previously selected setting will be retained.

OSX: 4.2+

MX: 4.2+

1 Enable Enables the Clipboard function to be used.

OSX: 4.2+

MX: 4.2+

2 Disable Disables use of the Clipboard function. Note- This will prevent the user from using the copy and paste functions for moving data to and from the clipboard. Attempting to use a disabled clipboard will result in an Android Toast message stating that the clipboard is disabled.

OSX: 4.2+

MX: 4.2+

Clear Clipboard

used to immediately clear the contents of the clipboard, preventing data that was stored there from being pasted at any time thereafter. If use of the Clipboard function is allowed by an application, it might be advisable to use this parm to clear sensitive information from clipboard upon exiting. This would ensure that such information could not later be pasted into another application.

Parm Name: ClipBoardClear

Option Name Description Requires
true true Clears the clipboard, erasing any content that was previously copied and preventing such content from being pasted.

OSX: 4.2+

MX: 4.2+

false false Causes no change to the contents of the clipboard.

OSX: 4.2+

MX: 4.2+

AutoCorrect Enable/Disable

Controls whether the AutoCorrect function is accessible by the device user. AutoCorrect can be used to save commonly entered words or industry-specific words or phrases and offer them as corrections to potentially mistyped words. This function could present a security risk since it could expose sensitive information to subsequent device users that are not authorized to view or reuse that information.

Parm Name: AutoCorrectUsage

Option Name Description Requires
0 Do not change This value (or the absence of this parm from the XML) will cause no changes to be made as to whether the AutoCorrect function is allowed to be used; any previously selected setting will be retained.

MX: 4.3+

Android API Level: 1+

1 Enable Enables use of the AutoCorrect function. Note- This value does not turn the AutoCorrect function on or off or configure any of its functions. When AutoCorrect is enabled, the device user can Turn the function On or Off and configure its functions using the System Settings panel.

MX: 4.3+

Android API Level: 1+

2 Disable Disables the AutoCorrect function. Enables use of the AutoCorrect function. Note- This value does not turn the AutoCorrect function on or off or configure any of its functions. When AutoCorrect is disabled, the device user cannot Turn the function On or Off or configure its functions using the System Settings panel.

MX: 4.3+

Android API Level: 1+

HomeKey Enable/Disable

Can be used to prevent use of the HOME key. This might be desirable when using an application that should normally not be exited, such as that of a kiosk. By preventing the use of the HOME key, a common method of navigating away from the application (whether intentional or not) can be eliminated.

Parm Name: HomeKeyUsage

Option Name Description Requires
0 Do not change This value (or the absence of this parm from the XML) will cause no changes to be made as to whether or not the HOME key can be used; any previously selected setting will be retained.

OSX: 1.0+

MX: 4.3+

1 Enable Allows use of the HOME Key.

OSX: 1.0+

MX: 4.3+

2 Disable Prevents use of the HOME key, thus preventing it from being used to navigate to the current Home Screen application and away from the currently running application. Note- Preventing use of the HOME key does not affect its "long press" behavior. To completely prevent all HOME key functionality, the KeyMappingMgr can be used (on supported devices) to remap the HOME key to some other behavior (or no behavior).

OSX: 1.0+

MX: 4.3+

Bluetooth Pairing Popup Enable/Disable

Controls whether to present the Bluetooth Pairing Popup during a pairing operation. The Bluetooth Pairing Popup is of most use when the device user will be left in charge of pairing of Bluetooth peripheral devices with an Android device. If one or more applications are expected to completely control all pairings of Bluetooth peripheral devices, the Bluetooth Pairing Popup may be seen as an unnecessary and confusing intrusion on the device user and/or as introducing the potential for the device user to mistakenly interfere with the pairing process.

Parm Name: BluetoothPairingPopupUsage

Option Name Description Requires
0 Do not change This value (or the absence of this parm from the XML) will cause no changes to be made as to whether the Bluetooth Pairing Popup is will be presented; any previously selected setting will be retained.

OSX: 4.3+

MX: 4.3+

1 Enable Causes the Bluetooth Pairing Popup to be presented whenever a pairing operation is performed.

OSX: 4.3+

MX: 4.3+

2 Disable Causes the Bluetooth Pairing Popup to be suppressed when a pairing operation is performed.

OSX: 4.3+

MX: 4.3+

Set Current Locale

Permits the selection of the device's Locale. A locale is the combination of a language and a region in which that language is spoken. Languages are identified by two lower-case letters; regions are identified by two upper-case letters. The locale joins the two letter-pairs with an underscore ("_") character. For example, "en_US" is the locale specification for "English spoken in the United States," and "fr_CA" is the locale specification for "French spoken in Canada."

When changing the Locale, it also might be desirable to change the Default Input Method to one that is suitable for entry of characters for the language associated with the selected Locale. Setting a particular Input Method as the Default Input Method does not prevent the device user from manually selecting a different Input Method, it merely determines which Input Method will come up automatically each time that parm is invoked.

Parm value input rules:

  • String containing two lower-case letters corresponding to the language
  • Optionally may contain two upper-case letters designating a region code
  • When a region code is used, letter pairs are joined by an underscore ("_") character. For example: en_US
  • The minimum length is 2 characters; the maximum length is 5 characters

Parm Name: CurrentLocale

Option Name Description Requires
0 Do not change This value (or the absence of this parm from the XML) will cause no changes to be made to the Locale; any previously selected setting will be retained.

OSX: 1.3+

MX: 4.3+

98 Extended Permits selection from the Extended List of Locales

MX: 5.1+

99 Custom Permits selection from the Custom List of Locales

MX: 5.1+

en_CA CANADA English spoken in Canada

OSX: 1.3+

MX: 4.3+

fr_CA CANADA_FRENCH French spoken in Canada

OSX: 1.3+

MX: 4.3+

zh_CN CHINA Chinese spoken in China

OSX: 1.3+

MX: 4.3+

zh CHINESE Chinese (non-region specific)

OSX: 1.3+

MX: 4.3+

en ENGLISH English (non-region specific)

OSX: 1.3+

MX: 4.3+

fr_FR FRANCE French spoken in France

OSX: 1.3+

MX: 4.3+

fr FRENCH French (non-region specific)

OSX: 1.3+

MX: 4.3+

de GERMAN German (non-region specific)

OSX: 1.3+

MX: 4.3+

de_DE GERMANY German spoken in Germany

OSX: 1.3+

MX: 4.3+

it ITALIAN Italian (non-region specific)

OSX: 1.3+

MX: 4.3+

it_IT ITALY Italian spoken in Italy

OSX: 1.3+

MX: 4.3+

ja_JP JAPAN Japanese spoken in Japan

OSX: 1.3+

MX: 4.3+

ja JAPANESE Japanese (non-region specific)

OSX: 1.3+

MX: 4.3+

ko_KR KOREA Korean spoken in Korea

OSX: 1.3+

MX: 4.3+

ko KOREAN Korean (non-region specific)

OSX: 1.3+

MX: 4.3+

zh_CN PRC Alternate Chinese spoken in China

OSX: 1.3+

MX: 4.3+

zh_CN SIMPLIFIED_CHINESE Alternate Chinese spoken in China

OSX: 1.3+

MX: 4.3+

zh_TW TAIWAN Chinese spoken in Taiwan

OSX: 1.3+

MX: 4.3+

zh_TW TRADITIONAL_CHINESE Alternate Chinese spoken in Taiwan

OSX: 1.3+

MX: 4.3+

en_GB UK English spoken in Great Britain/United Kingdom

OSX: 1.3+

MX: 4.3+

en_US US English spoken in the United States of America (USA)

OSX: 1.3+

MX: 4.3+

es_ES SPAIN_SPANISH Spanish spoken in Spain

OSX: 1.3+

MX: 5.0+

es_US US_SPANISH Spanish spoken in the United States of America (USA)

OSX: 1.3+

MX: 5.0+

pt_BR BRAZIL_PORTUGUESE Portuguese spoken in Brazil

OSX: 1.3+

MX: 5.0+

pt_PT PORTUGAL_PORTUGUESE Portuguese spoken in Portugal

OSX: 1.3+

MX: 5.0+

Set a Custom Locale

Permits the selection of the device's Custom Locale. A locale is the combination of a language and a region in which that language is spoken. Languages are identified by two lower-case letters; regions are identified by two upper-case letters. The locale joins the two letter-pairs with an underscore ("_") character. For example, "en_US" is the locale specification for "English spoken in the United States," and "fr_CA" is the locale specification for "French spoken in Canada."

When changing the Locale, it also might be desirable to change the Default Input Method to one that is suitable for entry of characters associated with the language of the selected Locale. Setting a particular Input Method as the Default Input Method does not prevent the device user from manually selecting a different Input Method, it merely determines which Input Method will come up automatically each time that parm is invoked.

Parm value input rules:

  • String containing two lower-case letters corresponding to the language
  • Optionally may contain two upper-case letters designating a region code
  • When a region code is used, letter pairs are joined by an underscore ("_") character. For example: en_US
  • The minimum length is 2 characters; the maximum length is 5 characters

Shown if: Current Locale value is "Custom" (99)

Parm Name: CustomLocale

Requires:

  • MX: 5.1+

Set an Extended Locale

Permits the selection of the device's locale from the list of Extended Locales. A locale is the combination of a language and a region in which that language is spoken. Languages are identified by two lower-case letters; regions are identified by two upper-case letters. The locale joins the two letter-pairs with an underscore ("_") character. For example, "en_US" is the locale specification for "English spoken in the United States," and "fr_CA" is the locale specification for "French spoken in Canada."

When changing the Locale, it also might be desirable to change the Default Input Method to one that is suitable for entry of characters for the language associated with the selected Locale. Setting a particular Input Method as the Default Input Method does not prevent the device user from manually selecting a different Input Method, it merely determines which Input Method will come up automatically each time that parm is invoked.

Parm value input rules:

  • String containing two lower-case letters corresponding to the language
  • Optionally may contain two upper-case letters designating a region code
  • When a region code is used, letter pairs are joined by an underscore ("_") character. For example: en_US
  • The minimum length is 2 characters; the maximum length is 5 characters

Shown if: Current Locale value is "Extended" (98)

Parm Name: ExtendedLocale

Option Name Description Requires
en_AU AUSTRALIA_ENGLISH

OSX: 1.3+

MX: 5.1+

en_IN INDIA_ENGLISH

OSX: 1.3+

MX: 5.1+

se_SE SWEDEN_SWEDISH

OSX: 1.3+

MX: 5.1+

nb_NO NORWAY_NORWEGIAN-BOKMAL

OSX: 1.3+

MX: 5.1+

fi_FI FINLAND_FINISH

OSX: 1.3+

MX: 5.1+

da_DK DENMARK_DANISH

OSX: 1.3+

MX: 5.1+

Set Default Input Method

Controls whether to change the Default Input Method (i.e. a soft keyboard) when that change is requested programmatically or manually by the device user. Setting a particular Input Method as the Default Input Method does not prevent the device user from manually selecting a different Input Method, it merely determines which Input Method will come up automatically each time that parm is invoked. When changing the Current Locale, it may desirable to also change the Default Input Method to one that is suitable for entry of characters that are associated with the selected Locale.

Parm Name: InputMethodAction

Option Name Description Requires
0 Do not change This value (or the absence of this parm from the XML) will cause no change to be made to the Current Default Input Method; any previously selected setting will be retained.

MX: 4.3+

Android API Level: 16+

1 Change Current Input Method This value will change the Current Default Input Method.

MX: 4.3+

Android API Level: 16+

Input Method Package Name

Used to specify the Android Package Name of a user-defined Input Method to be made the Default Input Method (i.e. a soft keyboard).

Note- The specified Package Name must match the Package Name of an Input Method that is already installed. If an attempt is made to specify a Package Name that does not match an installed Input Method, an error will be returned in the Result XML document.

Parm value input rules:

  • String containing the valid Package Name of an Android application that is currently installed and that implements a valid Input Method. For example: com.mycompany.myinputmethod
  • String with a minimum size of 1 character

Shown if: The "Set Default Input Method?" value is "Change Current Input Method" *AND* the "Select a Default Input Method Option" is "User defined Input Method"

Parm Name: InputMethodPackageName

Requires:

  • MX: 4.3+
  • Android API Level: 16+

Input Method Class Name

Used to specify the Android Class Name of a user-defined Input Method to be made the Default Input Method.

Note: The specified Class Name is used in conjunction with the Package Name and must match the name of the class that implements an Input Method within an Android application that is already installed and that has the specified Package Name. If an attempt is made to specify a Class Name that does not match an installed Input Method, an error will be returned.

Parm value input rules:

  • String with a minimum size of 1 character

Shown if: The "Set Default Input Method?" value is "Change Current Input Method" *AND* the "Select a Default Input Method Option" is "User defined Input Method"

Parm Name: InputMethodClassName

Requires:

  • MX: 4.3+
  • Android API Level: 16+

Select a Default Input Method Option

Allows the selection of the Default Input Method (i.e. the soft keyboard). If the selected Input Method is not already enabled, this parm will first enable it and then set it as the new default. The desired Input Method must have been previously installed and must be specified via its Android Package Name and Class Name.

Shown if: The "Set Default Input Method?" value is "Change Current Input Method"

Parm Name: InputMethodOption

Option Name Description Requires
1 English Sets the standard English Input Method as the Default Input Method.

MX: 4.3+

Android API Level: 16+

2 Japanese Sets the standard Japanese Input Method as the Default Input Method.

MX: 4.3+

Android API Level: 16+

3 Chinese(China) Sets the standard Chinese Input Method as the Default Input Method.

MX: 4.3+

Android API Level: 16+

4 User defined Input Method Sets a non-standard user-defined Input Method as the Default Input Method.

MX: 4.3+

Android API Level: 16+

Notification Quick Settings Icons Show/Hide

Controls whether Quick Settings icons will be displayed in the Android Notifications panel. Quick Settings icons provide immediate access to Wi-Fi, Bluetooth, GPS and other commonly used System settings without having to go through the Settings panel. The Notifications panel is accessed from most applications by dragging downward from the Notification/Status bar at the top of the Android screen. Hiding the Quick Settings icons can prevent a device user from accessing those Quick Settings and changing device behavior.

Parm Name: NotificationSettings

Option Name Description Requires
0 Do not change This value (or the absence of this parm from the XML) will cause no change to visibility of the Quick Settings icons in the Notifications panel; any previously selected setting will be retained.

OSX: 5.1+

MX: 5.1+

1 Show Shows the Quick Settings icons in the Notifications panel.

OSX: 5.1+

MX: 5.1+

2 Hide Hides the Quick Settings icons in the Notifications panel.

OSX: 5.1+

MX: 5.1+

Notification Pulldown Enable/Disable

Controls whether a device user will be allowed to "pull down" the Notifications/Status bar and access the Notifications panel. Depending on the Android version, the Notifications panel displays application alerts, text messages, widgets and other notifications, and provides access to device Settings. Preventing access to the Notification Pulldown can prevent a device user from accessing device Settings and other system objects that might allow a user to change system behavior or navigate away from the current application.

Parm Name: NotificationPullDown

Option Name Description Requires
0 Do not change This value (or the absence of this parm from the XML) will cause no change to ability of the device user to pull down the Notifications panel; any previously selected setting will be retained.

OSX: 5.1+

MX: 5.1+

1 Enable Allows the Notifications panel to be pulled down.

OSX: 5.1+

MX: 5.1+

2 Disable Prevents the Notifications panel from being pulled down.

OSX: 5.1+

MX: 5.1+

Two-Finger Quick Settings Enable/Disable

Controls whether Quick Settings can be accessed using a two-finger downward swipe gesture on some versions of Android. Quick Settings icons provide immediate access to Wi-Fi, Bluetooth, GPS and other commonly used System settings without having to go through the Settings panel. Disabling Quick Settings access can prevent a device user from changing device behavior.

Parm Name: QuickSettings

Option Name Description Requires
0 Do not change This value (or the absence of this parm from the XML) will cause no change to the accessibility of Quick Settings icons using a two-finger downward swipe; any previously selected setting will be retained.

OSX: 5.2+

MX: 5.2+

1 Enable Enables access to Quick Settings using a two-finger downward swipe.

OSX: 5.2+

MX: 5.2+

2 Disable Disables access to Quick Settings using a two-finger downward swipe.

OSX: 5.2+

MX: 5.2+

Examples

Configuring Device Region and Keyboard


<wap-provisioningdoc>
  <characteristic type="UiMgr" version="4.3" >
    <parm name="CurrentLocale" value="en_GB"/>
    <parm name="InputMethodAction" value="1"/>
    <characteristic type="InputMethodDetails">
      <parm name="InputMethodOption" value="1"/>
    </characteristic>
  </characteristic>
</wap-provisioningdoc>

Queries

Get Current Locale

Input


 <wap-provisioningdoc>
    <characteristic type="UiMgr" version="4.3" >
        <parm-query name="CurrentLocale"/>
    </characteristic>
</wap-provisioningdoc>

Output


<wap-provisioningdoc>
    <characteristic type="UiMgr" version="4.3" >
        <parm name="CurrentLocale" value="en"/>
    </characteristic>
</wap-provisioningdoc>

Get Home Key Usage

Input


<wap-provisioningdoc>
<characteristic type="UiMgr" version="4.3" >
  <parm-query name="HomeKeyUsage"/>
</characteristic>

Output


<wap-provisioningdoc>
    <characteristic type="UiMgr" version="4.3" >
        <parm name="HomeKeyUsage" value="1"/>
    </characteristic>
</wap-provisioningdoc>

Get Clipboard Usage

Input


<wap-provisioningdoc>
    <characteristic type="UiMgr" version="4.3" >
        <parm-query name="ClipboardUsage"/>
    </characteristic>
</wap-provisioningdoc>

Output


<wap-provisioningdoc>
    <characteristic type="UiMgr" version="4.3" >
        <parm name="ClipboardUsage" value="1"/>
    </characteristic>
</wap-provisioningdoc>

Get AutoCorrect Usage

Input


<wap-provisioningdoc>
    <characteristic type="UiMgr" version="4.3" >
        <parm-query name="AutoCorrectUsage"/>
    </characteristic>
</wap-provisioningdoc>

Output


<wap-provisioningdoc>
    <characteristic type="UiMgr" version="4.3" >
        <parm name="AutoCorrectUsage" value ="1"/> 
    </characteristic>
</wap-provisioningdoc>

Get Paring Popup

Input


<wap-provisioningdoc>
    <characteristic type="UiMgr" version="4.3" >
        <parm-query name="BluetoothPairingPopupUsage"/>
    </characteristic>
</wap-provisioningdoc>

Output


<wap-provisioningdoc>
    <characteristic type="UiMgr" version="4.3" >
        <parm name="BluetoothPairingPopupUsage" value="1"/>
    </characteristic>
</wap-provisioningdoc>

Get Input Methods

Input


<wap-provisioningdoc>
    <characteristic type="UiMgr" version="4.3" >
        <characteristic-query type="InputMethodDetails"/>
    </characteristic>
</wap-provisioningdoc>

Output Selected Input


 <wap-provisioningdoc>
    <characteristic type="UiMgr" version="4.3" >
        <parm name="InputMethodAction" value="1"/>
        <characteristic-query type="InputMethodDetails">
            <parm name="InputMethodOption" value="1"/>
        </characteristic>
    </characteristic>

Output Custom Input


<characteristic type="UiMgr" version="4.3" >
    <parm name="InputMethodAction" value="1"/>
    <characteristic type="InputMethodDetails">
        <parm name="InputMethodOption" value="4"/>
        <parm name="InputMethodPackageName" value="PackageName1"/>
        <parm name="InputMethodClassName" value="ClassName1"/>
    </characteristic>
</characteristic>

Get All Settings

Input


<wap-provisioningdoc>
    <characteristic-query type="UiMgr"/>
</wap-provisioningdoc>

Output


<wap-provisioningdoc>
  <characteristic type="UiMgr" version="4.3" >
        <parm name="CurrentLocale" value="en"/>
        <parm name="HomeKeyUsage" value="1"/>
        <parm name="ClipboardUsage" value ="1"/>
        <parm name="AutoCorrectUsage" value ="1"/> 
        <parm name="InputMethodAction" value="1"/>
        <parm name="BluetoothPairingPopupUsage" value="1"/>
        <characteristic type="InputMethodDetails">
          <parm name="InputMethodOption" value="4"/>
          <parm name="InputMethodPackageName" value="PackageName1"/>
          <parm name="InputMethodClassName" value="ClassName1"/>
        </characteristic>
    </characteristic>
</wap-provisioningdoc>