I am trying to extract the command that is called when I click a particular button on Android TV, Eventually I want to add it to an app, but for now I am just looking to call it via ADB for testing.
10-14 10:18:16.654 5058 5058 D SourceElementCallback: onElementClick position:7
10-14 10:18:16.656 5058 5058 W ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.bindService:1611 android.content.ContextWrapper.bindService:698 org.droidtv.channels.sources.SourcesUtils.bindToLoggingService:743 org.droidtv.channels.sources.SourcesUtils.switchTo:327 org.droidtv.channels.sources.SourceElementCallback.onElementClick:82
10-14 10:18:16.658 5058 5058 D SourcesUtils: PASSTHROUGH sourceUri:content://android.media.tv/passthrough/com.mediatek.tvinput%2F.hdmi.HDMIInputService%2FHW5
10-14 10:18:16.660 3878 3972 D org.droidtv.candeebug.Gateway: Returning successfully for event: {"event-type":"unknown.28","boot-count":9,"standby-count":9,"kernel-time":4030979,"data":{"original-event-type":28,"InputName":"Computer","uiname":"HDMI 1","ver":1}}
10-14 10:18:16.661 3878 5242 D org.droidtv.candeebug.h.a: Updated total event size to: 6815
10-14 10:18:16.670 2325 5682 I ActivityManager: START u0 {act=android.intent.action.VIEW dat=content://android.media.tv/passthrough/com.mediatek.tvinput/.hdmi.HDMIInputService/HW5 flg=0x10000000 cmp=org.droidtv.playtv/.PlayTvActivity (has extras)} from uid 1000
10-14 10:18:16.673 3540 3540 D PlayTvActivity: onNewIntent Action android.intent.action.VIEW data content://android.media.tv/passthrough/com.mediatek.tvinput%2F.hdmi.HDMIInputService%2FHW5
10-14 10:18:16.673 3540 3540 D PlayTvActivity: device ID =5
10-14 10:18:16.673 3540 3540 D PlayTvActivity: onNewIntent: ACTION_VIEW fav_list_id -1
10-14 10:18:16.685 3540 3540 D PlayTvActivity: onResume STATE_STARTED
10-14 10:18:16.686 3540 3540 D TvSessionManager: setStreamType value true
it looks like this is the action that is called? how would call that through ADB?
sourceUri:content://android.media.tv/passthrough/com.mediatek.tvinput%2F.hdmi.HDMIInputService%2FHW5
You have to call the activity manager am
in the following way:
adb shell am start -a android.intent.action.VIEW -d content://android.media.tv/passthrough/com.mediatek.tvinput/.hdmi.HDMIInputService/HW5 -n org.droidtv.playtv/.PlayTvActivity -f 0x10000000
Considering that the intent contains extra (see (has extras)
), then the command above might be extended a bit in order to add this additional information as well.
The tricky part is to understand the key name and type to pass to the activity manager (I'm referring to "device id" that seems the data provided as extras).
Supposing this is an int value then you have to append:
--ei device-id-key 5
More info here
adb shell am start -a android.intent.action.VIEW -d content://android.media.tv/passthrough/com.mediatek.tvinput%2F.hdmi.HDMIInputService%2FHW5 -n org.droidtv.playtv/.PlayTvActivity -f 0x10000000
it works with the %2F :-)
User contributions licensed under CC BY-SA 3.0