diff --git a/app/src/main/java/com/limelight/utils/TvChannelHelper.java b/app/src/main/java/com/limelight/utils/TvChannelHelper.java index 4e18ce23..d644ba08 100644 --- a/app/src/main/java/com/limelight/utils/TvChannelHelper.java +++ b/app/src/main/java/com/limelight/utils/TvChannelHelper.java @@ -252,7 +252,19 @@ public class TvChannelHelper { @TargetApi(Build.VERSION_CODES.O) private boolean isAndroidTV() { - return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_LEANBACK); + PackageManager pm = context.getPackageManager(); + + // HarmonyOS devices report PackageManager.FEATURE_LEANBACK yet + // when we attempt to actually use TvContract, it will die with + // an IllegalArgumentException because TvContract.Channels.CONTENT_URI + // is an unknown URL. I don't know if this is a perfect check for + // HarmonyOS-powered TVs (excluding any Android TVs), but it will + // suffice for now. + if (pm.hasSystemFeature("com.huawei.software.features.tv")) { + return false; + } + + return pm.hasSystemFeature(PackageManager.FEATURE_LEANBACK); } @TargetApi(Build.VERSION_CODES.O)