标签: android-tv

如何在build.gradle文件中使用工具:overrideLibrary?

我正在使用leanback库,它需要Android 17或更高版本.但是我的应用支持minSDK为16,所以我从gradle说得到了一个构建错误

Error:Execution failed for task ':Tasks:processPhoneDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 17 declared in library /Users/mike/Projects/android-for-dummies-v3/Tasks/build/intermediates/exploded-aar/com.android.support/leanback-v17/21.0.2/AndroidManifest.xml
    Suggestion: use tools:overrideLibrary="android.support.v17.leanback" to force usage
Run Code Online (Sandbox Code Playgroud)

当我查看构建工具文档时,我看到如何将overrideLibrary标记添加到我的清单中,但问题是我在gradle文件中而不是在清单中声明了我的minSdk.

overrideLibrary在build.gradle中而不是在AndroidManifest.xml中声明minSdk时如何使用?

android gradle android-tv

276
推荐指数
3
解决办法
12万
查看次数

Android TV RecyclerView重点互动

我目前使用常规RecyclerViewGridLayoutManager不同spanCount的depeding viewType为Android TV的应用.一切都很好,但我有两个问题:

  1. 如果您长按dpad以在项目之间快速滚动,有时焦点将丢失到不属于RecyclerView的子视图.
  2. 如何告知将RecyclerView当前聚焦视图保持在网格中心?

似乎列出的问题是通过使用VerticalGridViewfrom LeanBack库修复的,但LayoutManger它使用的是内部的,不支持spanCount.

android android-tv android-recyclerview

26
推荐指数
1
解决办法
8077
查看次数

如何在RecyclerView上增加当前焦点项目的大小?

我正在尝试制作一个带有a的水平列表RecyclerView,当我将焦点放在一个项目上时,增加它的大小.我想这样做:

增加项目效果

你有什么想法来实现这个目标吗?

android android-layout android-tv

22
推荐指数
2
解决办法
8192
查看次数

在Android TV上检测HDMI服务是否已启动

我们遇到HDMI服务问题.我们的Android TV应用程序在STB上设置为默认值.启动STB时,它不会显示启动器,它会立即显示应用程序,播放HLS视频流.对于播放视频,我们使用Exo Player版本2.6.1和Exo Media包装器版本4.1.0.当STB在睡眠后醒来时,我们会一次调查黑屏 - DPAD打开电源.播放列表我们在这种情况下得到的是工作和切换到另一个的渠道很好.此问题通常在同一用户处生成.

这是我们从屏幕为黑色时获取的日志(URL_TEST是我们的播放列表请求):

09-06 19:21:40.018 I/PowerManagerService(  369): Waking up from sleep...
09-06 19:21:40.018 I/WindowManager(  369): No lock screen!
09-06 19:21:40.038 I/AudioHardwareALSA(  104): AudioHardwareALSA::setParameters() screen_state=on
09-06 19:21:40.038 I/qtaguid (  369): Failed write_ctrl(s 1 10056) res=-1 errno=1
09-06 19:21:40.038 W/NetworkManagementSocketTagger(  369): setKernelCountSet(10056, 1) failed with errno -1
09-06 19:21:40.078 D/LightsService(  369): Excessive delay setting light: 54ms
09-06 19:21:41.018 W/SurfaceFlinger(  101): Timed out waiting for hw vsync; faking it
09-06 19:21:41.158 W/OkHttp  (  682): previous …
Run Code Online (Sandbox Code Playgroud)

android hdmi android-tv exoplayer exoplayer2.x

21
推荐指数
1
解决办法
496
查看次数

对于某些应用程序,getLaunchIntentForPackage为null

我正在构建一项服务,将安装的应用程序列表从Android TV或Fire TV发送到手机.然后,手机会发回它想要启动的应用程序的程序包名称,然后服务就会启动它.

这是创建列表的代码

public List<InstalledApp> GetInstalledApps(boolean isAndroid) {
    PackageManager pm = getPackageManager();
    List<ApplicationInfo> allPackages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
    List<InstalledApp> userPackages = new ArrayList<InstalledApp>();

    for (ApplicationInfo packageInfo : allPackages) {

        if (isSystemPackage(packageInfo)) continue;

        InstalledApp app = new InstalledApp();
        app.setPackageName(packageInfo.packageName);
        app.setAppName(pm.getApplicationLabel(packageInfo).toString());
        if (!isAndroid) {
            app.setIcon(pm.getApplicationIcon(packageInfo));
        }
        app.setAccentColor(getAccentColor(pm.getApplicationIcon(packageInfo)));


        userPackages.add(app);
    }

    return userPackages;
}
Run Code Online (Sandbox Code Playgroud)

这就是我启动应用程序的方式

public void launchApp(String packageName) {
    PackageManager pm = getPackageManager();
    Intent intent = pm.getLaunchIntentForPackage(packageName);
    startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)

在Fire TV上,一切都很完美,但在Android TV上,许多应用程序的意图始终为空.这些才一点点.

  • com.haystack.android
  • com.netflix.ninja
  • tv.pluto.android
  • com.bamnetworks.mlbtv

但是使用相同的代码,这些应用程序工作正常.

  • com.hulu.livingroomplus
  • com.sling
  • com.frogmind.badland
  • com.songza.tv

谁能提供任何有关我可能做错的见解?

谢谢!

编辑: …

android android-tv amazon-fire-tv nexus-player

18
推荐指数
3
解决办法
2万
查看次数

如何检查应用是否在Android TV上运行

有没有办法检查应用是否在Android TV或Android Mobile上运行?

我知道如何检查正在运行的构建.如果应用程序在Android TV和Mobile上运行,我想启动特定服务.希望把两个人放在同一个图书馆里.

android android-tv

17
推荐指数
3
解决办法
5993
查看次数

Android TV Remote使用什么协议?

Android TV Remote使用什么协议?似乎不再使用Anymote.但是仍然有像Android TV遥控器和远程Android TV这样的应用程序,即使是较新的Android TV也能很好地运行.有人可以指出任何官方/非官方文档来编写此类应用程序吗?

Android TV可以通过蓝牙或WiFi进行控制.如果其中任何一个遵循可以合并到Python或Android程序中的开放协议,那将是很好的.

基于各种评论和回复的几点澄清:

  • Anymote肯定不再是正在使用的协议(除非它被隐藏,仍可以某种方式用于未记录的fashio)

  • Android TV远程当前使用的端口(6466/6467)与Anymote标准端口(9552)不同

  • 旧的开源GoogleTV远程应用程序不再适用于AndroidTV

  • 我仍然看到通过mDNS公布"_androidtvremote._tcp" - 所以有一种方法可以通过TCP控制它.

android android-tv

16
推荐指数
1
解决办法
4220
查看次数

用于启动android应用程序的DIAL协议

我正在尝试使用DIAL启动Android TV应用.我将应用程序安装在我的Android TV上

"com.test.example"

我也将这条路径注册到DIAL网站,网址为:http://www.dial-multiscreen.org/dial-registry/namespace-database

我可以通过DIAL从我的手机配对到Android TV,但是每当我尝试实际启动应用程序时(使用ConnectSDK),我都会收到一个非常不明显的错误消息.关于这应该如何工作的文档很少.我是否需要在AndroidManifest中为电视应用注册某种DIAL接收器?我怎样才能让它认识到我在做什么.我试图通过以下方式传递"appId"......

appId = "com.text.example" appId = "example" appId = "Example"

我失踪了吗?

android android-tv

14
推荐指数
1
解决办法
509
查看次数

滚动到Android Leanback ListRow中的给定位置

我在Android TV应用程序中使用Google Leanback小部件.它使用带有ListRows的RowsFragment.

我想要确定的是,是否有任何方法可以以编程方式滚动到其中一行中的特定对象.我已经挖掘了Leanback小部件的文档,但无法找到我正在寻找的东西.

android android-tv leanback

13
推荐指数
3
解决办法
4981
查看次数

NestedScrollView内的多个水平RecyclerView窃取焦点

其实我现在正在为AndroidTV应用程序工作.我RecyclerViewNestedScrollView这个图像中有从右到左的多个水平.

问题是,当我向左滚动更多时,焦点移动到不同的列表或不同的视图,这是不好的.

我不希望焦点改变.如果列表到达结尾,则焦点应保持在相同位置.

我试过了 :

android:descendantFocusability="blocksDescendants"
android:focusableInTouchMode="true" //in parent layout
Run Code Online (Sandbox Code Playgroud)

但它没有用..

谁能帮我吗 ??

在此输入图像描述

没解决

android android-tv android-recyclerview

13
推荐指数
1
解决办法
2584
查看次数