Providing additional (chargeable) content -which way is recommended?

We’d like to publish a free version of an Android app and provide several ‘expansion packs’ or ‘themes’ for it, where each pack is a bunch of graphics (wallpapers) that our app needs to have access to. Some of these expansion packs will be free while others will be chargeable.

Which way would be recommended to provide those expansion packs?

Method 1: Using Google In-App purchase

Do we have to store the expansion packs on our server (as zipped files, for example, then download the zip file after a successful transaction and unpack the content into our app’s documents directory)? Or will we be able to upload the (chargeable) expansion packs into the Google store? If so, what is the required format?

Method 2: Adding expansion packs as Google store entries

We noticed that there are many apps in the Google store that also provide themes and expansions, where those expansions are shown as seperate entries in the Google store then (f.e. Next Launcher and all it’s additional themes available). The user just visits the Google Play store, installs one of the expansions provided there for the app and the app automatically recognizes that an extension (or theme) has been installed and therefore can use it. How is this done? Is the content of those expansions installed into the same path as the main application then? Or does the main app need to know the exact path of the extension then?

We would prefer method 2, because it seems to be less work and looks more reliable since we do not have to host the files on our own server and care about the download process and the In-App purchase stuff. The user would just have to install any extension from the Google Play store and the app would recognize that it is installed. This method would also allow other developers to provide additional content for the app then, which seems to be a nice feature, too.

Is there a way to do so?