Friday, January 18, 2013

EKH Tutorial 6 - Workaround for Samsung devices

The is the sixth tutorial for External Keyboard Helper. You'll find a all the tutorials here.

This tutorials is only interesting for Samsung users. I'm going to use my Galaxy S3 as an example but the problem is present with most (if not all) Samsung firmwares.

The problem looks like this:


Just a little information popup, how could that be a problem? Well, once you press OK on the dialog it will change your Input Method to "Samsung Keyboard" so it's just not informing you what it thinks you should use, it also makes you use it whether you want it or not.

On my Galaxy S3 this pops up whenever I connect a Bluetooth keyboard but only if "Samsung Keyboard" is not the currently selected Input Method. So let's say I use SlideIT as my preferred Input Method:

 
Now let's say I connect my Bluetooth keyboard and since I'm using External Keyboard Helper it will show the Input Method selector. However first Samsung will show their dialog and then the Input Method selector puts itself on top of it.

So I first select External Keyboard Helper and then I get back to the Samsung dialog and press OK. What happens now is that the Input Method will be switched to "Samsung Keyboard" which is not what I wanted. Not good!

I do not think there is a way to prevent the Samsung dialog from starting unless you are rooted and willing to mess around on your system partition. Still there is a workaround, it's not perfect but it's better than nothing.

What we need to do is to increase the Detection delay in the Advanced settings for External Keyboard Helper. In this example I set it to 4 seconds but most people will probably settle for 2 seconds after getting used to the procedure.


Now we bought us 4 seconds where we can press OK in the Samsung dialog before External Keyboard Helper brings up the Input Method selector. What we do is that we let Samsung first set the Input Method to their own one and then we switch it back to External Keyboard Helper.


So by setting up a delay we can make sure that Samsungs switch takes place before our switch and not the other way around.

19 comments:

  1. I'm sorry but this does not work as it should, I get only dialogue samsung and not saddle the next choice of input

    ReplyDelete
    Replies
    1. Make sure bluetooth detection is enabled in the advanced settings. Also if you have recently upgraded the firmware on the device then you sometimes need to uninstall and reinstall the app to clear it's settings.

      Next version will have an option within the settings to reset the autolearning data only so no uninstall/reinstall will be needed.

      Delete
  2. you can forcefully disable the samsung keyboard by freezing it in titanium backup, requires root too but it's a bit safer than just messing around in /system
    my note 2 is rooted so i can use that method, but on my galaxy camera i'll try the delay option.

    ReplyDelete
    Replies
    1. Thanks to "Unknown" for this freezing-solution! It's working on my Galaxy Tab 2 10.1, too!

      Delete
    2. Many thanks for the tips. This alone could be a reason to consider rooting.

      Delete
    3. May seems silly but it confused me at first if you do the freeze thing you have to restart your phone/tablet for it work.

      Delete
  3. Thank you! At least at first try it works pretty well :D Thanks for the tutorial, working in my Samsung Galaxy Tab 2 was driving me crazy xD

    ReplyDelete
  4. How is it possible to refresh the initial keyboard layout after a wrong modification of scancode?

    ReplyDelete
    Replies
    1. You can choose a new predefined layout and the choose to create a custom layout and overwrite your current custom layout with the predefined one.

      Delete
  5. This comment has been removed by a blog administrator.

    ReplyDelete
  6. So, this workaround does nothing for me on my Galaxy Note 10.1. Ive set the delay to 2, 4 or 6 seconds but the EKH window never pops up. Any thoughts or new info about this problem? (Using swedish bluetooth keyboard and 4.1.) Damn Samsung, this feature is more like a bug.

    ReplyDelete
    Replies
    1. Try checking the "Old style detection" option the advanced settings. The new detection method tries to filter out headsets and only detect real keyboards. With some keyboards you need to check this checkbox.

      Delete
  7. I purchased a Perixx bluetooth keyboard to use with my Samsung Galaxy Tab. When I type a "e" it opens the e-mail. When I type "s" it brings up messages. When I type "g" it brings up gmail, and "b" doesn't work. How do I fix this?

    ReplyDelete
    Replies
    1. Restart both tablet and keyboard. On some android versions the input system gets confused and believes that the "windows key" is held down and android have a bunch of shortcuts built on for that. For example Win+E = Email etc...

      Delete
  8. I've got a problem with this "choose input method" all the time, because my keyboard "get sleep" when it's not uses. When I want to write something quicky I need to whait for this two windows and tap on the tablet's screen every time - it's drives me crazy... This app was great but for previous android : (

    ReplyDelete
    Replies
    1. This happens because the bluetooth connection get's broken and reconnects and Samsungs code kicks in forces their input method back on. It's really frustrating but sadly nothing more I can do about it. An USB-OTG adapter and an USB keyboard might work better as it should do the reconnecting thing all the time, However not all devices support USB keyboards so there is no guarantee that your do.

      Delete
  9. This comment has been removed by the author.

    ReplyDelete
  10. This comment has been removed by the author.

    ReplyDelete
  11. I plan to buy a Samsung Galaxy Tab A 10.1 2016. Is the problem solved with Samsung devices? I pray for an answer, thank you.

    ReplyDelete