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