我有一个应用程序在我的清单中关联 pdf 文件(通过意图过滤器),所以当有人在默认浏览器中单击 pdf 链接时,我可以使用我的应用程序执行该操作并使用进度条下载它。我的问题是,这是一种我可以在清单中关联其他文件但不是“硬编码”的方式,而是让用户在首选项中选择(或编写)该文件扩展名,我可以从代码中动态添加它。我知道这可能可以通过广播接收器完成,但找不到任何示例或简单代码。我在 bsplayer 设置中看到过类似的偏好菜单 .. 但不能发布图像,因为没有足够的声誉。
我将尝试更详细地解释我的问题,因为我认为下面的答案存在一些误解。
我有一个应用程序,在我的清单中有闲置代码。
<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:scheme="http" /> <data android:host="*" /> <data android:pathPattern=".*\\.pdf" /> </intent-filter>
2.我启动了我的应用程序,它注册了 .pdf 文件。所以下次我在浏览器中单击 pdf 链接时,会弹出一个窗口,让我选择应该使用哪个应用程序来完成该操作。如果我选择我的应用程序,我的主要活动将启动,我使用 getIntent() 并且我的应用程序使用进度条下载文件。
3.问题是我想下载和其他类似的文件。jpg,png .. 等,但给用户一个选择,或者甚至让他为他想要使用我的应用程序下载的文件编写扩展名,如果点击某个链接会导致那种文件。
4.为了实现这一点,文件扩展名应该在代码中动态添加,而不是在清单中。我正在寻找广播接收器的一些示例,因为该类可以使用 IntentFilter 类,但不能真正理解我应该用它做什么。
5.我的主要目标:启动我的应用程序,有一些微调或编辑框的布局。用户选择/编写一些扩展名(.dwf)。该扩展程序现在已在我的应用程序中注册。如果下次用户浏览互联网时点击指向 .dwf 文件的链接,他可以选择继续使用我的应用程序进行操作。并且文件应该像.pdf一样下载
6.sry 我的英语不好,我们将不胜感激。还有代码;)