在api29之前,只需要在自定义的provider的应用(eg:DatabaseStore)的AndroidManifest中设置好provider属性即可使用,export="true"确保其他应用程序可以调用本应用的provider,eg:
<application>
...
<provider
android:name=".DatabaseProvider"
android:authorities="com.example.databasestore.provider"
android:enabled="true"
android:exported="true"/>
...
</application>
在api30中,需要在使用provider的应用程序(eg:ProviderTest)的AndroidManifest中配置好如下queries才能使用
<manifest>
...
<queries>
<provider android:authroities="com.example.databasestore.provider"/>
</queries>
...
</manifest>
注意:api30需要和android studio3.6.1以上才能良好兼容,使用android studio3.6.1以下版本会出现不兼容情况,程序的编译运行会报错。
参考:https://developer.android.com/about/versions/11/privacy/package-visibility?hl=zh-cn