HDMI work around for ICS

I'm trying to do the same thing on my Droid 4 with HBO GO. This seems like it should work for that too, but I'm not having any luck. When I run the command I see no discernible difference on the phone, and in the adb shell, I get Broadcast completed: result=0. Is this what it should say? How can I tell if the intent I broadcast is being heard? Should I be doing anything different because I'm using a different phone? Any suggestions are greatly appreciated.

It sounds like you're getting the right response. Here's what I get when I run the command:
"Broadcasting: Intent { act=com.motorola.intent.action.externaldisplaystate (has
extras) }
Broadcast completed: result=0"

You might try the command adb devices and see that it shows a 16 character device ID. This will confirm that your computer is set up correctly with drivers and the SDK. As long as you are using a Motorola phone, I would expect this command to work with NFL mobile without a problem. I have not tried it with any other apps but I would think that they would work the same way.
 
I'm not sure. So far I haven't found any way to allow an app on the phone to give commands as if they were being sent through the ADB. Though I've only been coding Android for a few months, so it's entirely possible there is a way. If someone is able use this method to create an app or a script that eliminates the need for a PC, that would be great.

Through a terminal emulator app I've got it to work on my Droid 4.
You just need to type "su" first and hit enter to grant the app Superuser permissions then run the script ---> "adb shell am broadcast -a com.motorola.intent.action.externaldisplaystate --ei hdmi 0 --ei hdcp".

Strange thing though, with my wife's Razr, the same script won't work through the terminal emulator.
 
Strange thing though, with my wife's Razr, the same script won't work through the terminal emulator.

Oh, one thing I forgot to mention is that the phone needs to have USB debugging enabled. At least, I'm pretty sure it does. I just leave it checked on my phone. Try enabling that on your wife's phone and see if that makes it work. I have the RAZR Maxx and it's basically the same phone except for which battery is in it.
 
Oh, one thing I forgot to mention is that the phone needs to have USB debugging enabled. At least, I'm pretty sure it does. I just leave it checked on my phone. Try enabling that on your wife's phone and see if that makes it work. I have the RAZR Maxx and it's basically the same phone except for which battery is in it.

Yep, I have debugging enabled. Tried again last night and once again it'll work just fine through ADB, but in Terminal Emulator it won't push it through on the Razr.

On my Droid 4 it is very convenient to be able to just run the command through terminal emulator and not have to connect it to a PC.
Oh well, I'm just very glad that there is a workaround for this block on HDMI access that some apps enforce.

Has anyone been able to get the command to work through a Terminal Emulator app on a Droid Razr or Razr Maxx?
 
Where are you all getting the script to run? or is it just typed in?
 
The script method by jbattershell works great! Just follow his directions on the first page exactly and it will work. Make sure you change the directory in the cmd terminal, I had to look up how to do that, havent used DOS in along time. You have to use the cd (change directory) command (google it). My laptop is 64bit so I had to make sure I got the 64bit moto driver. Also, if it hasnt been mentioned you can run the script then disconnect the usb cable and it still works. Just dont wiggle the hdmi cable or it will block you and you have to start the process over.

For those of you wondering about quality it looks really good when they zoom in on players, but when watching the plays it is like watching standard definition. However, it is very watchable and a big thanks to jbattershell for getting this to work!

Sent from my DROID RAZR using Tapatalk 2
 
The Final Fix for all phones!!!!!!!

The quote below has the basics, but i found a way to run this command directly from the Droid Bionic (and i believe any of the phones that it couldn't be run on directly before). Instead of running the command from the quote below, enter SU and run this command.

"/system/bin/sh -c am broadcast -a com.motorola.intent.action.externaldisplaystate --ei hdmi 0 --ei hdcp 1"

When i ran this from the android terminal emulator, i received the correct response.

However, I was testing this on the lapdock, and not the actualy HDMI. The problem with that is that the NFL Mobile app on the lapdock continues to reload every time you try to open it (lapdock flaw switching between applications), so i needed an additional work around. I used an application calls "Tasker" and i set a timed event in Tasker that automatically run a shell command for me. (that feature is built into tasker)

The command to use in taskers shell option is "am broadcast -a com.motorola.intent.action.externaldisplaystate --ei hdmi 0 --ei hdcp 1"

I followed someone elses guide that stated open NFL Mobile and get the error "HDMI connected". I clicked OK and then waited for the timed event from tasker to run my command. Once it ran, i backed up one screen and re-clicked on "Live" and the game began to play. You can also use tasker to set up timed events that control your phone directly so NFL Mobile will never be able to determine where it came from, so you can set something that will go off every 9 minutes (like a brightness change or a refresh) to prevent the application from asking "are you still there". It does it every 10 minutes, so i set my command to every 9.

I hope this helps everyone. Let me know if it is too scatterbrained to follow. Thanks and good luck everyone!


I used to use Xternal Display until I got a RAZR Maxx that has ICS and the app doesn't work anymore. Xternal Display actually has their code posted online so I downloaded it and tried to see if there were any changes that would allow it to work with ICS. Turns out Motorola had an HDMI API that it discontinued for ICS. This API is what Xternal Display used and without it, there is not an easy way of making the app work on 4.0+.

After some work I did come up with a new solution so I can get NFL mobile mirrored to my TV! You must have the Android SDK tools installed and the Developer driver from Motorola installed for this to work. You can download the driver at https://developer.motorola.com/tools/usb_drivers/handset_usb_driver/
  1. Connect HDMI cable to phone and connect USB to computer and phone
  2. Open up command prompt and change directory to your SDK folder/platform-tools. For me, that is C:\Android-sdk\platform-tools
  3. Send the following without the quotes: "adb shell am broadcast -a com.motorola.intent.action.externaldisplaystate --ei hdmi 0 --ei hdcp 1"
  4. Open up NFL Mobile and enjoy it on a bigger screen!
NFL Mobile looks for broadcasts that indicate the state of the HDMI port and stops accessing the streaming content when it sees that HDMI has been plugged in. By sending a command over the ADB interface, we are effectively tricking NFL mobile into thinking that the HDMI cable has been removed! It's not quite as nice as Xternal Display was since it's not just an app on the phone anymore, but at least there is a way!
 
@seanwetzel-I tried following your method but cant get into the SU terminal, do you have to have the paid version of SU? Any chance of doing a step by step for us less savvy users?
 
Hmmm, I keep getting an error: "device not found" I 'installed' the SDK package (not really an install per se, more of an unzip). I then downloaded the USB Drivers from the Motorola link (couldn't find the developer drivers, not sure what that was about) and then open a cmd prompt, but get the device not found error. Any suggestions?
 
Question about Tasker

I used your info and now have the NFL app working on my big screen. Thank you! I'm interested in setting up Tasker so it prevents the NFL message that asks "if i'm still here" but do not know how to do it. Any chance I can impose on you to post the instructions? Thanks.




When i ran this from the android terminal emulator, i received the correct response.

However, I was testing this on the lapdock, and not the actualy HDMI. The problem with that is that the NFL Mobile app on the lapdock continues to reload every time you try to open it (lapdock flaw switching between applications), so i needed an additional work around. I used an application calls "Tasker" and i set a timed event in Tasker that automatically run a shell command for me. (that feature is built into tasker)

The command to use in taskers shell option is "am broadcast -a com.motorola.intent.action.externaldisplaystate --ei hdmi 0 --ei hdcp 1"

I followed someone elses guide that stated open NFL Mobile and get the error "HDMI connected". I clicked OK and then waited for the timed event from tasker to run my command. Once it ran, i backed up one screen and re-clicked on "Live" and the game began to play. You can also use tasker to set up timed events that control your phone directly so NFL Mobile will never be able to determine where it came from, so you can set something that will go off every 9 minutes (like a brightness change or a refresh) to prevent the application from asking "are you still there". It does it every 10 minutes, so i set my command to every 9.

I hope this helps everyone. Let me know if it is too scatterbrained to follow. Thanks and good luck everyone![/QUOTE]
 
Question about Tasker

I used your info and now have the NFL app working on my big screen. Thank you! I'm interested in setting up Tasker so it prevents the NFL message that asks "if i'm still here" but do not know how to do it. Any chance I can impose on you to post the instructions? Thanks.
 
Back
Top