Android App to call Channels Live Tv?

Is there documentation covering the deep-links available for Android apps (kotlin+java) to trigger Live Tv?

grok gave me this but it doesnt work ... get a black screen instead of live tv ..

Intent: android.intent.action.VIEW
Data: channels://live
Package: com.getchannels.dvr.app
Component: com.getchannels.dvr.app/com.getchannels.android.PlayerActivity
Extra: open_live = true (boolean)

You could use the API:

Or try the urls listed here:

Thanks for the fast reply, great to connect w a dev! I'm looking for navigation links to the Guide and Recording so I can map button presses. I've already written an accessibility service that maps the TiVo button to launch Channels DVR, and uninstalled the TiVo Stream app. Struggling with Live TV and Guide at the moment and need guidance or snippets.

BTW, the Channels installation did not create an Accessibility UI service entry so I can't take advantage of the "Channels Button Detector" feature and that's why I'm writing my own. I've installed Channels 4.9.4 on a TiVo 4k Stream device straight from google play store.

Appreciate any help you can provide. I'm impressed with Channels and am investing time to code up a smooth interface for family so that we can unwind cable card and TiVo without too much grief ...

There are several threads that discuss remapping the buttons of a TiVo Stream 4K for use with Channels DVR.

Maybe start with this one:

:slightly_smiling_face:

We were forced to remove it due to google App Store policy.

override fun onKeyEvent(event: KeyEvent?): Boolean {
        return when (event?.keyCode)  {
            KEYCODE_GUIDE -> {
                Log.v("RemoteButton", "${event}")
                if (event.action == ACTION_DOWN) {
                    launchMainActivity(extras = mapOf("tab" to "guide"))
                }
                true
            }
            KEYCODE_DVR -> {
                Log.v("RemoteButton", "${event}")
                if (event.action == ACTION_DOWN) {
                    launchMainActivity(extras = mapOf("tab" to "dvr_library"))
                }
                true
            }
            KEYCODE_TV,
            5124 /* LIVE on TiVo remote */ -> {
                Log.v("RemoteButton", "${event}")
                if (event.action == ACTION_DOWN) {
                    launchPlayerLive()
                }
                true
            }
fun launchMainActivity(flags: Int = 0, extras: Map<String, String>? = null) {
            val intent = instance.packageManager.getLeanbackLaunchIntentForPackage(instance.packageName)
            intent?.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or flags)
            extras?.forEach {
                intent?.putExtra(it.key, it.value)
            }
            instance.startActivity(intent)
        }
}
fun launchPlayerLive(channel: String? = null) {
                val intent = Intent(
                        Intent.ACTION_VIEW,
                        "channels://${BuildConfig.APPLICATION_ID}/play/channel/$channel".toUri(),
                        instance,
                        MainActivity::class.java
                )
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
                instance.startActivity(intent)
}
1 Like

Damn Google!!

Great thanks for those snippets. I'll incorporate into my app, it will fall right into place.

i've been looking for a way to launch cdvr with streamer4k-FLIRC-generic roku IR remotes.
think that could be incorporated somehow?