我们是否应该给开发人员一个选项,以便他们稍后在其应用程序中自行初始化facebook SDK?对于大多数开发人员来说,MarketingInitProvider中的无代码init是一个很好的便捷功能,但是有些开发人员也希望完全控制何时初始化facebook SDK。
Facebook SDK初始化也会触发一些网络活动,这是影响应用程序启动时间的因素之一。那我们应该提供一个选择吗?如果这样做,我们还需要在多个位置检查初始化状态,例如,在CurrentAccessTokenExpirationBroadcastReceiver中,而不是崩溃,它什么都不做吗?
答案 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" />