【发布时间】:2011-01-12 23:56:55
【问题描述】:
有没有一种方法可以检测手机是否选择了用于意图的默认应用程序,例如android.intent.action.SEND?
有没有办法通过代码清除默认应用?
我想给用户一个选项来删除默认设置,或者至少显示一个屏幕告诉他们如何手动操作,如果我能检测到的话。
【问题讨论】:
标签: android android-intent default
有没有一种方法可以检测手机是否选择了用于意图的默认应用程序,例如android.intent.action.SEND?
有没有办法通过代码清除默认应用?
我想给用户一个选项来删除默认设置,或者至少显示一个屏幕告诉他们如何手动操作,如果我能检测到的话。
【问题讨论】:
标签: android android-intent default
看看PackageManager。有了它,您可以确定如何使用 resolveActivity(intent) 处理 Intent。看来清除偏好的方法(clearPackagePreferredActivities)只对你自己的包有效。
【讨论】:
resolveActivity(intent, MATCH_DEFAULT_ONLY)来避免字符串比较。
使用两步检测默认值:
PackageManager.queryIntentActivities 获取 Intent 的所有活动,PackageManager.resolveActivity 得到解决。
如果已解决的问题在queryIntentActivities 返回的列表中,则不会出现“使用完成操作”对话框,因此设置了“默认”活动。
【讨论】: