如何在android中检查我的应用程序是否设置为默认值?

时间:2010-07-27 04:40:01

标签: android

我想检查我的应用程序是否设置为我在我的应用程序中处理的Intents的默认应用程序。

作为示例,多个应用程序支持打开指定的文件格式。我需要从我的代码中将我的应用程序作为默认应用程序。如何使我的应用程序成为默认值(从代码中)?谁能帮我?

至少我想在我的应用启动时检查这一点,并重定向用户填写一些信息,如果我的应用程序未设置为设备上的默认值。

2 个答案:

答案 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数据进行意图。