Categories
android android-contentprovider facebook

Android Facebook content provider authority

I’m developing an app with (at least) two flavors having different package names – therefore actually two different apps as far as the android system is concerned. The app uses Facebook sharing, so I have the provider declared in the manifest:

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

This is done according to Facebook’s instructions: https://developers.facebook.com/docs/sharing/android

This works fine with one app, but trying to install the second app on the same device fails with the error INSTALL_FAILED_CONFLICTING_PROVIDER. This is the only provider defined in the manifest so I’m pretty sure it’s the problem. If I change the provider string to be something different it crashes when attempting to open a Facebook share dialog.

I’ve seen claims that it’s possible to use the same Facebook app in multiple android apps, but can’t find anything in Facebook’s documentation about it. Has anybody done this, and how did you get around the provider authority problem? Thanks.