与Facebook的Android SDK共享真的需要android:exported =" true"

时间:2016-01-02 10:54:13

标签: android-manifest facebook-android-sdk

TL; DR

是否必须为Facebook共享指定android:exported="true",还是可以使用更安全的android:exported="false"

背景

我按照<{3>}中的官方文档在先决条件部分中说明了这一点:

  

您还需要在AndroidManifest.xml中设置ContentProvider,其中{APP_ID}是您的应用ID:

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

这样可以正常工作,但是行android:exported="true"会发出警告:

  

导出的内容提供商可以提供对潜在敏感数据的访问

通过阅读,我理解这个警告是关于潜在的安全威胁。所以我将该行更改为android:exported="false"并重新运行我的应用程序,该应用程序按预期运行,Facebook共享也运行良好。

那么,我是否可以使用android:exported="false",或将来会出现这个问题,也许是在我将应用部署到Google Play时?

1 个答案:

答案 0 :(得分:0)

对于我的工作场所,我们也非常小心android:exported =“true”。通常,您可以将其保留为android:exported =“false”,因为您不希望其他应用程序通过该应用程序的contentProviderId访问您的应用程序。但是,使用android:exported =“false”,共享您的providerId(您的其他应用程序)的应用程序仍然可以访问它,但否则它们不能访问它。