我想检查我的应用程序是否设置为我在我的应用程序中处理的Intents的默认应用程序。
作为示例,多个应用程序支持打开指定的文件格式。我需要从我的代码中将我的应用程序作为默认应用程序。如何使我的应用程序成为默认值(从代码中)?谁能帮我?
至少我想在我的应用启动时检查这一点,并重定向用户填写一些信息,如果我的应用程序未设置为设备上的默认值。
答案 0 :(得分:4)
据我所知,这是不可能的。该对话由系统处理 - 只有当用户从列表中选择您的应用时,才会启动您的应用。
允许这样的行为会影响用户控制其默认应用程序的能力,从技术角度来看,这意味着每次出现这样的列表时,必须将一个进程及其内存分配给列表中的每个应用程序。
答案 1 :(得分:0)
您可以使用此方法:
public static boolean isOurAppDefault(Context context) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://google.com"));
ResolveInfo resolveInfo = context.getPackageManager().resolveActivity(browserIntent,PackageManager.MATCH_DEFAULT_ONLY);
String defaultBrowserPkg = null;
if (resolveInfo != null) {
if (resolveInfo.activityInfo != null) {
defaultBrowserPkg = resolveInfo.activityInfo.packageName;
}
}
return TextUtils.equals(context.getPackageName(), defaultBrowserPkg);
}
某些编辑或浏览器的实际情况。在其他情况下,使用不同的Uri数据进行意图。