我已经看过这个问题100多次,但没有一个答案对我有用。我希望我的应用程序能够处理带有ics或vcs扩展名的所有文件,*无论它们来自哪里。 *除此之外,如果他们来自http / https我不想自己下载,我只想让浏览器至少让用户保存它们然后用我的应用程序打开。目前浏览器显示“此手机不支持内容”。
这是我现在所拥有的,但我一直在努力:
<intent-filter >
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:host="*" />
<date android:mimeType="text/calendar" />
<data android:scheme="https" />
</intent-filter>
有了上述内容,当我点击一个来自我的服务器的https链接,我知道我的服务器正在发送文本/日历mime类型时,droid会询问他们想要用什么应用来打开链接。该列表包含我的应用程序或浏览器。如果我选择我的应用程序,它会运行我的活动并给我Uri。我希望浏览器下载文件,我不想自己下载...同样的方式其他文件类型工作,图像,PDF等。如果我选择浏览器,它开始下载,但然后停止使用“此手机不支持的内容”错误。
我也试过这个:
<intent-filter >
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:host="*" />
<data android:scheme="file" />
<data android:pathPattern=".*\\.ics" />
</intent-filter>
还尝试将方案设置为“内容”,以及我在SO和其他地方发现的许多其他变体。
答案 0 :(得分:0)
您应该考虑浏览器正在为二进制文件实现此下载行为,您无法通过intent-filter更改它。
其他应用程序(如pdf viewer)声明一个与第二种方法相同的intent-filter(文件扩展名除外)。
因此我建议您自己下载文件。因为它只需要几行代码,所以这不应该是一个大问题。