【问题标题】:Android Intent defaults - detect and clearAndroid Intent 默认值 - 检测并清除
【发布时间】:2011-01-12 23:56:55
【问题描述】:

有没有一种方法可以检测手机是否选择了用于意图的默认应用程序,例如android.intent.action.SEND

有没有办法通过代码清除默认应用?

我想给用户一个选项来删除默认设置,或者至少显示一个屏幕告诉他们如何手动操作,如果我能检测到的话。

【问题讨论】:

    标签: android android-intent default


    【解决方案1】:

    看看PackageManager。有了它,您可以确定如何使用 resolveActivity(intent) 处理 Intent。看来清除偏好的方法(clearPackagePreferredActivities)只对你自己的包有效。

    【讨论】:

    • 看起来你在正确的轨道上,但还有很多。我回家后必须研究这个。谢谢。
    • 嗯,我能够使用这种方法检测到缺少默认活动。如果没有选择默认值,基本上我会得到“com.android.internal.app.ResolverActivity”。所以它起作用了,但我必须按字符串进行比较,鉴于活动名称可能会改变,我不确定这是一种有前途的方法。谢谢!
    • @user432209,我想你可以使用resolveActivity(intent, MATCH_DEFAULT_ONLY)来避免字符串比较。
    • 我使用两步检测默认值:queryIntentActivities 获取 Intent 的所有活动,resolveActivity 得到解决。如果解决的一个在 queryIntentActivities 返回的列表中,则不会有“使用完成操作”对话框,因此设置了“默认”活动。
    • @PointerNull 这应该是一个单独的答案,因为它是正确的。
    【解决方案2】:

    使用两步检测默认值:

    PackageManager.queryIntentActivities 获取 Intent 的所有活动,PackageManager.resolveActivity 得到解决。

    如果已解决的问题在queryIntentActivities 返回的列表中,则不会出现“使用完成操作”对话框,因此设置了“默认”活动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-17
      • 1970-01-01
      • 2018-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多