gpt4 book ai didi

Android Facebook 内容提供商权限

转载 作者:IT王子 更新时间:2023-10-28 23:37:08 24 4
gpt4 key购买 nike

我正在开发一个具有(至少)两种具有不同包名称的应用程序 - 因此就 android 系统而言实际上是两个不同的应用程序。该应用程序使用 Facebook 共享,因此我在 list 中声明了提供程序:

<provider android:authorities="com.facebook.app.FacebookContentProvider{app id here}"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"/>

这是根据 Facebook 的说明完成的:https://developers.facebook.com/docs/sharing/android

这适用于一个应用程序,但尝试在同一设备上安装第二个应用程序失败并出现错误 INSTALL_FAILED_CONFLICTING_PROVIDER。这是 list 中定义的唯一提供程序,所以我很确定这是问题所在。如果我将提供程序字符串更改为不同的内容,它会在尝试打开 Facebook 共享对话框时崩溃。

我看到有人声称可以在多个 Android 应用程序中使用同一个 Facebook 应用程序,但在 Facebook 的文档中找不到任何关于它的信息。有没有人这样做过,您是如何解决提供者权限问题的?谢谢。

最佳答案

我发现的一种可能的解决方案是此处描述的解决方案

http://gradlewhy.ghost.io/overcoming-install-failed-conflicting-provider/

我已经将它用于(调试/发布变体)android.support.v4.content.FileProvider 并且据我测试,它也适用于 com.facebook.app.FacebookContentProvider。

只需添加到应用程序 build.gradle

    debug {
applicationIdSuffix '.debug'
versionNameSuffix '-DEBUG'

resValue "string", "fb_provider_id", "com.facebook.app.FacebookContentProvider{app_id_1}"
}

release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

resValue "string", "fb_provider_id", "com.facebook.app.FacebookContentProvider{app_id_2}"
}

然后在 AndroidManifest 中

<provider android:authorities="@string/fb_provider_id"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"/>

关于Android Facebook 内容提供商权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30807789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com