Извлечь команду из logcat Android-TV

#android #adb #android-tv

#Android #adb #android-tv

Вопрос:

Я пытаюсь извлечь команду, которая вызывается, когда я нажимаю определенную кнопку на Android TV, в конце концов я хочу добавить ее в приложение, но пока я просто хочу вызвать ее через ADB для тестирования.

 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/.hdmi.HDMIInputService/HW5
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/.hdmi.HDMIInputService/HW5
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
  

похоже, это и есть вызываемое действие? как бы вызвать это через ADB?

 sourceUri:content://android.media.tv/passthrough/com.mediatek.tvinput/.hdmi.HDMIInputService/HW5
  

Ответ №1:

 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
  

он работает с / 🙂

Комментарии:

1. вы можете отформатировать свой ответ, чтобы сделать его более читаемым. прямо сейчас ответ и предложение перепутаны.

Ответ №2:

Вы должны вызвать диспетчер действий am следующим образом:

 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
  

Учитывая, что intent содержит extra (см. (has extras) ), то приведенная выше команда может быть немного расширена, чтобы добавить и эту дополнительную информацию.

Самое сложное — понять имя и тип ключа для передачи в диспетчер действий (я имею в виду «идентификатор устройства», который, как представляется, данные предоставляются в качестве дополнительных).

Предположим, что это значение int, тогда вам нужно добавить:

 --ei device-id-key 5
  

Подробнее здесь

Комментарии:

1. Спасибо, он приближается, теперь он возвращается с сообщением: «Предупреждение: действие не начато, намерение было доставлено в текущий запущенный самый верхний экземпляр».

2. это связано с тем, что действие уже загружено, и система просто перенесла его на передний план.