android – How can an app handle intents without having any intent-filters in its manifest?-ThrowExceptions

Exception or error:

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?

How to solve:

That manifest indicates the APK contains no code:

<application hasCode="false">

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.

Leave a Reply

Your email address will not be published. Required fields are marked *