我很难将我的应用与特定文件类型(.stl
)相关联。来自Kevin的推荐here没有任何效果。尝试从文件管理器启动文件时,我的应用程序不是建议的选项之一。
他的代码是:
<activity name="com.mycompany.MyActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:mimeType="application/pdf" />
</intent-filter>
</activity>
(除非我不是pdf)。我已经尝试了我能找到的这个主题的所有变化。
系统似乎没有意识到我的应用程序可以打开这种文件。我做了些蠢事吗?
非常感谢任何建议。
修改
我有答案。基本上你必须声明你允许任何旧的mimetype并依赖文件扩展名。使用'正确'的mimetype(application / sla)不起作用。这有效:
<data android:scheme="file"
android:mimeType="*/*"
android:pathPattern=".*\\.stl" />
现在,当我在Astro中选择一个文件时,我的应用程序被建议为打开此类文件。
答案 0 :(得分:1)
我很难将我的应用与特定的文件类型(.stl)相关联。
通常,Android不使用文件扩展名来表示类型。 Android使用MIME类型来指示类型。
尝试从文件管理器启动文件时,我的应用程序不是建议的选项之一。
嗯,唯一可靠的答案是:
步骤1:确定.stl
个文件与
步骤2:在<activity>
元素的android:mimeType
元素中使用该MIME类型
步骤3:强制每个文件管理员作者在遇到.stl
个文件时实现对MIME类型的支持
步骤#3当然是问题所在。
像iOS和其他操作系统一样,Android正在拼命地隐藏用户的“文件”概念。这就是为什么没有内置到Android的文件管理器,为什么很少有设备捆绑一个,以及为什么在操作系统中对该概念的支持很少。我们欢迎您尝试在<data android:scheme="file" android:pathPattern=".*\\.stl" />
元素中使用<data>
来支持基于文件扩展名的内容,但我不确定这是否有效。您可能还需要该元素中的android:host="*"
- Android本身不会将pathPattern
用于file
方案,而我正在检查的第三方代码会以两种方式显示该元素。我再也不知道它是否有效。