清除默认Android应用程序

时间:2012-05-31 10:32:49

标签: android

我们可以知道用户已为特定操作设置了默认应用程序吗?一世。即android.intent.action.CALL_PRIVILEGED

假设我的应用程序还提供了Call_privilaged的调用操作。但是用户已将内置拨号器设置为Call_privilaged操作的默认启动器。

我的问题是我能否以语法方式知道用户已将拨号器设置为Call_privalged操作的默认启动器。

谢谢。

2 个答案:

答案 0 :(得分:1)

  

我们可以知道用户已为特定操作设置了默认应用程序吗?一世。即android.intent.action.CALL_PRIVILEGED

我认为没有一种简单的方法可以做到这一点。在getPreferredActivities()上拨打PackageManager,然后通过List<IntentFilter>筛选,以便找到与您的Intent匹配的内容。

答案 1 :(得分:0)

您可以使用Intent或PackageManager的resolveActivity()

Intent intent = ...
ComponentName componentName = intent.resolveActivity(getPackageManager());
if (componentName.getPackageName().equals("android")) {
    // No default selected
    ...
} else if (componentName.getPackageName().equals(getPackageName())) {
    // We are default
    ...
} else {
    // Someone else is default
    ...
}

如果你自己没有处理这个意图,你也可能需要对没有应用程序能够处理意图的情况进行空检查。

不确定这是否适用于所有设备和Android的所有版本。在Nexus设备上测试Android 4.1-4.3。