You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin Android 11无QUERY_ALL_PACKAGES权限唤起Facebook应用咨询

Android 11及以上版本无特殊权限唤起Facebook应用方案

Android 11引入了包可见性过滤机制,默认情况下应用仅能查询系统预装应用、自身已声明关联应用的相关信息,未做声明的第三方应用会被系统直接判定为不存在,这就是未配置全量包查询权限时fb协议无法被识别、仅能跳转网页的核心原因。该场景完全不需要申请需要Google特殊审核的QUERY_ALL_PACKAGES权限,通过定向声明包可见性即可实现正常唤起。


具体实现步骤

1. 配置AndroidManifest包可见性声明

在Android项目的AndroidManifest.xml文件中,找到<manifest>根节点,在和<application>平级的位置添加<queries>配置,定向声明需要查询的Facebook应用信息:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
    <!-- 原有权限配置保持不变 -->
    <!-- 不要添加QUERY_ALL_PACKAGES权限 -->

    <queries>
        <!-- 声明Facebook正式版应用包可见 -->
        <package android:name="com.facebook.katana" />
        <!-- 声明fb协议的intent处理规则匹配 -->
        <intent>
            <action android:name="android.intent.action.VIEW" />
            <data android:scheme="fb" />
        </intent>
        <!-- 如需兼容Facebook Lite,可补充下面这行 -->
        <!-- <package android:name="com.facebook.lite" /> -->
    </queries>

    <application ...>
        <!-- 原有application配置保持不变 -->
    </application>
</manifest>

注意:如果编译时提示queries标签无法识别,请将Xamarin.Android SDK升级到支持Android 11(API 30)及以上的版本即可,无需引入额外第三方依赖。

2. 优化原有唤起逻辑(可选推荐)

原有唤起逻辑可以正常使用,建议补充异常兜底逻辑,避免个别设备Facebook版本差异导致的崩溃,优化后代码如下:

private async void Buttonfb_Tapped(object sender, EventArgs e)
{
    try 
    {
        var fbPageUri = new Uri(string.Format("fb://page/{0}", AppData.FacebookId));
        if (await Launcher.CanOpenAsync(fbPageUri))
        {
            await Launcher.OpenAsync(fbPageUri);
            return;
        }
    }
    catch 
    {
        // 捕获所有唤起异常,走网页兜底
    }
    // 客户端唤起失败时,跳转移动网页版兜底
    OpenUrl(string.Format("https://m.facebook.com/{0}", AppData.FacebookPage));
}

方案合规说明

  • 该配置仅定向声明了Facebook单个应用的可见性,不属于全量采集用户安装应用列表的敏感行为,上架Google Play时不会触发QUERY_ALL_PACKAGES的特殊权限审核流程,无需提交额外说明即可正常过审。
  • 配置兼容Android 11至目前最新的Android 14版本,不存在版本适配失效问题。

内容的提问来源于stack exchange,提问作者Software Magic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 06:12:13