My understanding is that, in order to handle external intents, an app’s
manifest.xml file must contain an
intent-filter; however, using APK Analyzer, I saw that the manifest of the Spotify app is merely:
<?xml version="1.0" encoding="UTF-8"?><manifest versionCode="55843262" configForSplit="" package="com.spotify.music" split="config.xxhdpi"> <application hasCode="false"> <meta-data name="com.android.vending.derived.apk.id" value="8"/> </application> </manifest>
This shows no intent filters; however, I am able to open Spotify with:
adb shell am start -a "android.media.action.MEDIA_PLAY_FROM_SEARCH" -e android.intent.extra.focus "vnd.android.cursor.item/*" -e query Bowie
What am I missing?
That manifest indicates the APK contains no code:
Either there is another APK with the code in it (which will also contain the rest of the manifest entries you are missing), or Spotify is using Google Play Dynamic Delivery which allows modules to be downloaded and installed on the fly.
In any case, you aren’t looking at the whole manifest for the app.