我们可以知道用户已经为特定操作设置了默认应用程序吗?一世。即android.intent.action.CALL_PRIVILEGED清除默认Android应用程序
假设我的应用程序还提供Call_privilaged操作调用。但用户已将内置拨号程序设置为Call_privilaged操作的默认启动程序。
我的问题是,我可以从程序上知道该用户已将拨号程序设置为Call_privalged操作的默认启动程序。
谢谢。
我们可以知道用户已经为特定操作设置了默认应用程序吗?一世。即android.intent.action.CALL_PRIVILEGED清除默认Android应用程序
假设我的应用程序还提供Call_privilaged操作调用。但用户已将内置拨号程序设置为Call_privilaged操作的默认启动程序。
我的问题是,我可以从程序上知道该用户已将拨号程序设置为Call_privalged操作的默认启动程序。
谢谢。
我们可以知道用户为特定操作设置了默认应用程序吗?一世。即android.intent.action.CALL_PRIVILEGED
我不认为有一个简单的方法来做到这一点。在PackageManager
上拨打getPreferredActivities()
,然后筛选List<IntentFilter>
,您可以尝试为您的Intent
找到匹配项。
您可以使用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。