从Android TV主屏幕启动特定程序

问题描述 投票:0回答:1

我正在研究电视推荐/主屏幕频道应用。

我已经在Android TV主屏幕上成功显示了我的应用程序中的程序列表,并且每当用户从主屏幕中选择任何程序时都能够启动VideoPlaybackActivity。

问题:无法启动用户在主屏幕上选择的特定视频

这里是代码,我写的是在VideoListingActivity中启动程序的>

public void dynamicPrograms() {

        for (Movie movie : movieArrayListHomeScreen) {

            Uri posterArtUri = Uri.parse(movie.getImageUrl(Movie.IMAGE_ICON));
            Uri previewVideoUri = Uri.parse(movie.getPlaybackUrl());

            PreviewProgram program = new PreviewProgram.Builder()
                    .setChannelId(channelId)
                    .setType(TvContractCompat.PreviewPrograms.TYPE_MOVIE)
                    .setTitle(movie.getName())
                    .setDescription(movie.getName() + " description goes here")
                    .setPosterArtUri(posterArtUri)
                    //.setPreviewVideoUri(previewVideoUri)
                    .setInternalProviderId(String.valueOf(movie.getId()))
                    .setContentId(String.valueOf(movie.getId()))
                    .setIntentUri(Uri.parse(SCHEME + "://" + APPS_LAUNCH_HOST
                            + "/" + PLAY_VIDEO_ACTION_PATH + "/" + movie))
                    .build();

            Uri programUri = getApplicationContext().getContentResolver()
                    .insert(TvContractCompat.PreviewPrograms.CONTENT_URI, program.toContentValues());

            long programId = ContentUris.parseId(programUri);
            Log.d("programId:", String.valueOf(programId));
        }
    }

注意:

我正在使用Intent传递数据,但在VideoPlaybackActivity中没有获得相同的数据,但是如果我在Activity中使用相同的Intent(假定在Detail Activity中)来调用VideoPlaybackActivity,那么我将获取选定数据/特定视频,因为我正在Logcat中打印相同的视频

这是我在VideoDetailsActivity

中用来在VideoPlaybackActivity中播放选定视频的内容
Intent intent = new Intent (v.getContext (), VideoPlaybackActivity.class);
                                intent.putExtra (VideoPlaybackActivity.EXTRA_MOVIE, movie);
                                startActivity (intent);

但是,当我直接从Android TV主屏幕调用VideoPlaybackActivity时(未在Logcat中获得特定视频的价值,因此无法启动VideoPlaybackActivity来播放特定视频)>

Manifest.xml

    <activity android:name=".ui.activity.VideoPlaybackActivity">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />
            <data
                android:scheme="androidtvhomescreenchannels"
                android:host="com.androidtv.hsc"
                android:pathPrefix="/playvideo" />
        </intent-filter>
    </activity>

NOTE:

甚至,我想知道我从主屏幕中选择了哪个特定程序,也希望在Logcat中看到该程序/电影的名称

我正在研究电视推荐/主屏幕频道应用。我已经在Android TV主屏幕上成功显示了我的应用程序中的程序列表,并能够在用户...

android android-8.0-oreo android-tv homescreen leanback
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.