I want to start the search Activity
in shazam. According to this there is no search Activity
to shazam, only a <provider>
tag.
<provider android:name="com.shazam.android.SearchProvider" android:authorities="shazamSearchEncore" android:syncable="false" />
I tried to launch it in various ways but because this is not an Activity
it failed. So how do I start shazam search? Or am i missing something in that manifest
xml file?
My tries:
1:
Intent intent = new Intent("com.shazam.android.SearchProvider");
intent.putExtra("query",query);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.context.startActivity(intent);
2:
final Intent shazamIntent = new Intent(Intent.ACTION_SEARCH);
shazamIntent.setPackage("com.shazam.android.SearchProvider");
shazamIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.context.startActivity(shazamIntent );
And so on...
Also I checked these post post 1 and post 2. But found nothing helpful.
A ContentProvider
can't be "launched" by intents like an Activity
.
A provider is a component, designed for providing an interface to some data. The data can be accessed by a ContentResolver
.
Some ContentProvider
s also allow access from other apps. This is usually documented somewhere, providing the URL that is needed to access the data and details about the data itself. Such an example is the Contacts provider, used to access all the contact information stored on the device.
Judging by the look of the manifest declaration of the provided that you are trying to access, I think it can only be accessed by the Shazam applications itself, so there is no way to access the data it provides.