Search code examples
windows-10-iot-coreon-screen-keyboard

Windows 10 iot core onscreen keyboard


I am using Windows 10 iot core for creating a product. During the development phase, I had easy access to onscreen keyboard. Now when I am done with development, I followed the online manufacturing guide by microsoft as follows: https://learn.microsoft.com/en-us/windows-hardware/manufacture/iot/iot-core-manufacturing-guide

After following the first 2 labs, I managed to get my app working on my Raspberry pi 3. However, the onscreen keyboard was missing. Going to the Device Portal i.e. ipaddress:8080, the option for onscreen keyboard was also missing. This is where I had turned it on during development phase.

After going through microsoft documentation, I found that I need to add following features to my app IOT_SHELL_ONSCREEN_KEYBOARD IOT_SHELL_ONSCREEN_KEYBOARD_FOLLOWFOCUS

I tried the following things:

  1. While building: "Add-IoTProductFeature ProductA Test IOT_SHELL_ONSCREEN_KEYBOARD -OEM". It gets accepted but fails while building it
  2. "Add-IoTProductFeature ProductA IOT_SHELL_ONSCREEN_KEYBOARD -OEM". This prompts me with the following message:

cmdlet Add-IoTProductFeature at command pipeline position 1 Supply following parameters: FeatureID: As I enter IOT_SHELL_ONSCREEN_KEYBOARD as the feature ID, it gives an error: IOT_SHELL_ONSCREEN_KEYBOARD not supported.

  1. Next I discovered that these features need to be listed in the OEM Input file. I navigated to these files in my workspace and added the features there. (wondering it might be pre-installed in the package and needs activation: desperate one!)

So basically I have failed on this. Can someone please help me get this working before i purchase a code-signing certificate and get a retail build.

Any support will be highly appreciated there

Useful Links: https://learn.microsoft.com/en-us/windows/iot-core/develop-your-app/onscreenkeyboard https://learn.microsoft.com/en-us/windows-hardware/manufacture/iot/iot-core-feature-list https://learn.microsoft.com/en-us/windows-hardware/manufacture/iot/iot-core-adk-addons


Solution

  • You need to add the feature in TestOEMInput.xml(in folder \Source-arm\Products\ProductA), like following.If you are building the image for retail, you need add the feature in RetailOEMInput.xml.

    <Features>
        <Microsoft>
          <Feature>IOT_EFIESP</Feature>
          <Feature>IOT_EFIESP_BCD_MBR</Feature>
          <Feature>IOT_DMAP_DRIVER</Feature>
          <Feature>IOT_CP210x_MAKERDRIVER</Feature>
          <Feature>IOT_FTSER2K_MAKERDRIVER</Feature>
          <Feature>IOT_GENERIC_POP</Feature>
          <!-- Following two required for Appx Installation -->
          <Feature>IOT_UAP_OOBE</Feature>
          <Feature>IOT_APP_TOOLKIT</Feature>
          <!-- for Connectivity -->
          <Feature>IOT_WEBB_EXTN</Feature>
          <Feature>IOT_POWERSHELL</Feature>
          
          <Feature>IOT_SSH</Feature>
          <Feature>IOT_SIREP</Feature>
          <!-- Enabling Test images -->
          <Feature>IOT_ENABLE_TESTSIGNING</Feature>
          <Feature>IOT_TOOLKIT</Feature>
          <!-- Debug Features -->
          <Feature>IOT_KDSERIAL_SETTINGS</Feature>
          <Feature>IOT_UMDFDBG_SETTINGS</Feature>
          <Feature>IOT_WDTF</Feature>
          <Feature>IOT_CRT140</Feature>
          <Feature>IOT_DIRECTX_TOOLS</Feature>
          
          <!-- Sample Apps, remove this when you introduce OEM Apps -->
          <Feature>IOT_BERTHA</Feature>
          <Feature>IOT_ALLJOYN_APP</Feature>
          <Feature>IOT_NANORDPSERVER</Feature>
          <Feature>IOT_SHELL_HOTKEY_SUPPORT</Feature>
          <Feature>IOT_APPLICATIONS</Feature>
          <Feature>IOT_SHELL_ONSCREEN_KEYBOARD</Feature>
          <Feature>IOT_SHELL_ONSCREEN_KEYBOARD_FOLLOWFOCUS</Feature>
    
        </Microsoft>
        <OEM>
          <!-- Include BSP Features -->
          <Feature>RPI2_DRIVERS</Feature>
          <Feature>RPI3_DRIVERS</Feature>
          <!-- Include OEM features -->
          <Feature>OEM_CustomCmd</Feature>
          <Feature>OEM_ProvAuto</Feature>
          <!-- For recovery, include: RECOVERY_BCD_MBR -->
    
        </OEM>
      </Features>