是否可以在MarketingInitProvider中禁用无代码初始化

时间:2018-12-09 10:39:32

标签: android facebook facebook-sdk-4.x

我们是否应该给开发人员一个选项,以便他们稍后在其应用程序中自行初始化facebook SDK?对于大多数开发人员来说,MarketingInitProvider中的无代码init是一个很好的便捷功能,但是有些开发人员也希望完全控制何时初始化facebook SDK。

Facebook SDK初始化也会触发一些网络活动,这是影响应用程序启动时间的因素之一。那我们应该提供一个选择吗?如果这样做,我们还需要在多个位置检查初始化状态,例如,在CurrentAccessTokenExpirationBroadcastReceiver中,而不是崩溃,它什么都不做吗?

1 个答案:

答案 0 :(得分:0)

即使

 <meta-data 
      android:name="com.facebook.sdk.AutoLogAppEventsEnabled"
      android:value="false"/> 

 <meta-data 
      android:name="com.facebook.sdk.AdvertiserIDCollectionEnabled"
      android:value="false"/>

由于您提到的MarketingInitProvider,仍然对Facebook进行了HTTP调用。

这是因为facebook-android-sdk模块依赖于facebook-marketing

build.gradle中明确排除它:

implementation("com.facebook.android:facebook-android-sdk:$facebook_version") {
    exclude group: 'com.facebook.android', module: 'facebook-marketing'
}

即使这样,FB SDK仍会将信息发送到Facebook服务器。

添加此项以禁用另一个自动启动提供程序。

    <provider
        android:name="com.facebook.internal.FacebookInitProvider"
        tools:ignore="ExportedContentProvider"
        tools:node="remove" />