【问题标题】:How to define default ACTION_VIEW intent for specific mime?如何为特定的 mime 定义默认的 ACTION_VIEW 意图?
【发布时间】:2011-11-25 18:25:28
【问题描述】:

我正在尝试查找默认的 Intent 哪个设备正在使用以支持特定的 mime 类型,代码如下:

    PackageManager pm = this.getPackageManager();
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setDataAndType(uri, mimeType);
    List<ResolveInfo> lri = pm.queryIntentActivities(intent, 0);
    for(ResolveInfo resolveInfo:lri)
    {
        if(Me.DEBUG)
            Log.i(TAG, "Resolved intent="+resolveInfo.activityInfo.packageName+
                    ", default="+resolveInfo.isDefault+
                    ", order="+resolveInfo.preferredOrder+
                    ", match="+resolveInfo.match+
                    ", priority="+resolveInfo.priority);
        if(resolveInfo.isDefault)
        {
            intent=pm.getLaunchIntentForPackage(resolveInfo.resolvePackageName);
            intent.setDataAndType(uri, mimeTypes.getMimeTypeString(name));
            break;
        }
    }
    return intent; 

这段代码有什么问题? ResolveInfo 永远不会返回默认值... Logcat 报告始终相同,例如:

解决intent=com.android.htmlviewer, default=false, order=0, 匹配=6324224,优先级=0 已解决意图=com.sec.print.mobileprint, default=false,order=0,match=6324224,priority=0 已解决 意图=com.qo.android.htc,默认=false,订单=0,匹配=6324224, 优先级=0 已解决意图=org.coolreader,默认=false,顺序=0, 匹配=6324224,优先级=0 已解决意图=xcxin.fileexpert, default=false,order=0,match=6324224,priority=0 已解决 意图=com.opera.browser,默认=false,顺序=0,匹配=6324224, 优先级=0 已解决意图=com.dropbox.android,默认=false, 顺序=0,匹配=6324224,优先级=0

虽然选择器上有默认标记为“将其设为默认”复选框!

【问题讨论】:

    标签: android android-intent default mime-types


    【解决方案1】:

    这里,“默认”表示用户设置默认值,方法是在之前调用此Intent 并选中选择器上的“使其成为默认值”复选框。如果尚未完成,则没有默认值。

    【讨论】:

    • 没错。我正在寻找那些将用户标记为默认的人!有没有办法找到它?在我的情况下,有这样的默认值,但我找不到它,日志不显示任何内容!
    • 哦,抱歉,我以为Intent 没有默认设置。我本来希望您的代码适用于这种情况。无论如何,根据您的用例,在PackageManager 上使用getPreferredActivities()resolveActivity()
    猜你喜欢
    • 2020-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    相关资源
    最近更新 更多