在我的 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/