【问题标题】:Why PackageManager.queryIntentActivities method returning only default browser info for ACTION_VIEW?为什么 PackageManager.queryIntentActivities 方法只返回 ACTION_VIEW 的默认浏览器信息?
【发布时间】:2019-12-05 08:07:01
【问题描述】:

我正在尝试使用 PackageManager 获取设备中所有浏览器的详细信息。

这是我尝试过的。

    PackageManager pm = context.getPackageManager();
        // Get default VIEW intent handler.
    Intent activityIntent = new Intent(Intent.ACTION_VIEW, 
    Uri.parse(url));

        // Get all apps that can handle VIEW intents.
    List resolvedActivityList = 
                 pm.queryIntentActivities(activityIntent, 0);

但是,它只返回一个应用程序详细信息,即我的默认浏览器信息。

【问题讨论】:

标签: android android-intent


【解决方案1】:

我找到了解决方案。

从 api 级别 23 开始,来自 android 文档

public static final int MATCH_ALL 查询标志:如果设置并且平台正在对结果进行任何过滤,则过滤不会发生。这是说所有结果都应该返回的同义词。

List resolvedActivityList;
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    resolvedActivityList = 
                 pm.queryIntentActivities(activityIntent,PackageManager.MATCH_ALL );
} else {
    resolvedActivityList = pm.queryIntentActivities(activityIntent, 0);
}

【讨论】:

    猜你喜欢
    • 2017-08-07
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 2013-11-16
    相关资源
    最近更新 更多