如何让我的Android应用程序成为打开某种文件类型的默认应用程序?
我试图清除默认值,但选项显示为灰色,是否有人知道如何执行此操作?
我想用android中的something.whatever
文件打开我的应用程序。
答案 0 :(得分:13)
你不能强迫这一点,你不应该这样做。你可以做的是让你知道你的应用程序可以打开文件类型。用户可以获得标准的“您希望使用的程序”对话框,并且用户可以选择默认的内容。 如果用户已经选择了默认值,他/她需要在对话框出现之前将其撤消(显然,否则“默认”不会产生很大影响,现在可以吗?)
您可以通过添加intent-filter告诉世界(aka:android)您想要打开某种文件类型。你基本上做的是在你的清单中加入你的应用程序中的活动知道如何处理文件类型(或网站/协议等)。这很容易找到,关于同一问题的关于SO的随机问题将是:Android intent filter for a particular file extension?
答案 1 :(得分:7)
此主题已在此处介绍:Register to be default app for custom file type
将其添加到intent-filter:
<intent-filter >
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/pdf" />
</intent-filter>
答案 2 :(得分:5)
我正在使用Android版本4.4.4的“Droid Maxx”
在将firefox关联起来并始终与something.html
文件关联后,如何使用文件编辑器而不是firefox打开*.html
文件。
您必须清除与文件类型相关联的应用的默认设置。
执行此操作
something.html
文件。您再次会看到要使用哪种程序打开此文件的选项。
如果您希望将文件类型与应用无关联关联和取消关联:
有一个名为的第三方应用程序:Default App Manager Lite:
https://play.google.com/store/apps/details?id=com.appiator.defaultappmanager
然后您可以运行该程序并管理您的文件类型 - &gt;单独的默认应用关联。
答案 3 :(得分:0)
我认为在android中,每个app / activity都必须在其manifest文件中有一些intent动作和类别。在此意图设置中,您只需将应用设为默认设置。
即使你在清单中写默认,如果找到任何其他具有相同意图设置的应用程序,android系统将显示具有相同设置的所有应用程序。用户必须选择其中一个,只有它提供一个复选框,以使下一次的默认设置为一个应用程序。如果用户没有检查它,则每次用户打开文件时都会显示列表。
我希望它可以帮助你。
答案 4 :(得分:0)
试试这个
Intent i = new Intent();
i.setAction(android.content.Intent.ACTION_VIEW);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.setDataAndType(Uri.parse("file://"+path),
"application/vnd.android.package-archive");
startActivity(i);
路径变量是你的路径。