Background
==========

I have a journal app that allows the user to attach photos to entries from the camera or storage. The app stores references to the image files in a database in the form of *content://* Uri strings. This seems to work reliably.

Now I want to create a free version of the app that is more basic, but I need to include a mechanism to import the data into the more advanced app should the user choose to upgrade. This is easily accomplished with an exported ContentProvider, but attempting to read from the content Uris results in a SecurityException since it is a different app.

Question
========

Is it possible to request persistable read access to a known Uri? I know how to use `takePersistableUriPermission` on the Uri returned by an `ACTION_OPEN_DOCUMENT` Intent, but I don't see a way to do that with a specific Uri.

Potential Solutions
===================

1. Use a single app with an In-App Purchase to unlock the full features. The reasons I want to avoid that is that it relies on Google Play and the file size will be unnecessarily large for the free version.
2. Use the same `sharedUserId` for both apps so their permissions are shared. This is not possible in this case since existing users will not be able to upgrade.
3. Convert the `content://` Uris to `file://` Uris and create a new content Uri in the receiving app. Of course this is not possible with all content Uris but it is better than nothing.