Android 如何使用特定应用打开未知文件类型

Android 如何使用特定应用打开未知文件类型,android,Android,我正试图让来自kodi的视频流出现在我的android电视推荐部分。一切都很好,但现在我正试图在科迪直接打开流。该文件的扩展名为“.strm” 我尝试过以下代码: Intent-Intent=新意图(Intent.ACTION\u视图); urivideouri=Uri.parse(“指向.strm文件的路径”); intent.setDataAndType(videoUri,“*/*”); 星触觉(意向) 它显示了许多选项,但kodi不在列表中。如果我使用文件资源管理器打开“.strm”文件,

我正试图让来自kodi的视频流出现在我的android电视推荐部分。一切都很好,但现在我正试图在科迪直接打开流。该文件的扩展名为“.strm”

我尝试过以下代码:

Intent-Intent=新意图(Intent.ACTION\u视图);
urivideouri=Uri.parse(“指向.strm文件的路径”);
intent.setDataAndType(videoUri,“*/*”);
星触觉(意向)

它显示了许多选项,但kodi不在列表中。如果我使用文件资源管理器打开“.strm”文件,我可以选择将其作为视频打开,然后列表中有kodi,如果我单击kodi,它将直接打开流。所以我得出结论,强制kodi打开应用程序是可能的,但我不知道文件管理员是如何做到这一点的

我也尝试过将“video/*”作为MIME,但它只显示少数视频播放器,而文件管理器则显示更多的视频播放器


如何获得文件管理器在打开文件时显示的相同选项?

我找到了一个解决方案,我不知道这是否正确,但它可以工作。通过应用程序“Activity Launcher”,我查看了kodi的活动。显然,它只有一个名为“.Splash”的活动


由于某些原因,setpackage不起作用,但setclassname起作用。

我找到了一个解决方案,我不知道它是否正确,但它确实起作用。通过应用程序“Activity Launcher”,我查看了kodi的活动。显然,它只有一个名为“.Splash”的活动

出于某种原因,setpackage不起作用,但setclassname起作用

Intent intent = new Intent(Intent.ACTION_VIEW);
    Uri videoUri = Uri.parse("PATH TO THE .strm FILE");
    intent.setDataAndType(videoUri, "*/*");
    intent.setClassName("org.xbmc.kodi", "org.xbmc.kodi.Splash");
    startActivity(intent);