android - TvInputManager.getTvInputList() 中的 NullPointerException

标签 android android-tv

在我的 Android TV 应用中,我尝试使用以下代码获取电视输入列表:

TvInputManager tvInputManager = (TvInputManager) getSystemService(Context.TV_INPUT_SERVICE);
List<TvInputInfo> tvInputInfos = tvInputManager.getTvInputList();

但是在 getTvInputList() 中引发了一个 NullPointerException:

java.lang.NullPointerException: Attempt to invoke interface method 'java.util.List android.media.tv.ITvInputManager.getTvInputList(int)' on a null object reference
    at android.media.tv.TvInputManager.getTvInputList(TvInputManager.java:943)

查看TvInputManager的源码,似乎mService为null:

return mService.getTvInputList(mUserId);

getTvInputList() 应该如何使用?

最佳答案

我认为您是在不是真正的“Android TV”设备的 Android 设备上运行此代码。我的意思是存在很多运行 android 的电视盒,但其中很少有真正的“Android TV”设备。 您可以使用以下代码检查它:

boolean trueAndroidTV = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_LEANBACK);

最后,您可以使用以下代码测试您的设备是否真的支持 TV Input Framework:

boolean tifSupport = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_LIVE_TV);

关于android - TvInputManager.getTvInputList() 中的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45074883/

相关文章:

java - 在Recyclerview中排序/搜索/过滤以从Mysql检索数据

android - Android TV 应用程序的持续状态? (用什么代替Android上的通知栏)

安卓电视盒子WebView

android - 可以在 Android TV 应用程序中嵌入电视信号吗?

android - 通知像 whatsapp 或短信应用程序 android

android - 如何以编程方式检查 Android 中点击事件后新屏幕是否已完全加载?

Android:以固定间隔拉取位置崩溃,Looper Prepare(是的,我搜索过!!)

java - 使用后退按钮离开 GuidedStepFragment 时出现空白屏幕

android - 使 AndroidTV 应用程序可在 FireTV 上运行

java - 正则表达式在 validator 中有效,在java代码中无效