我想在shazam中开始搜索Activity
。根据{{3}},shazam没有搜索Activity
,只有<provider>
个标记。
<provider android:name="com.shazam.android.SearchProvider" android:authorities="shazamSearchEncore" android:syncable="false" />
我试图以各种方式启动它,但因为这不是Activity
它失败了。那么我该如何开始shazam搜索?或者我错过了manifest
xml文件中的内容?
我的尝试:
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 );
等等......
答案 0 :(得分:2)
ContentProvider
无法像Activity
这样的意图“启动”。
提供程序是一个组件,旨在为某些数据提供接口。 ContentResolver
可以访问数据。
某些ContentProvider
也允许从其他应用访问。这通常记录在某处,提供访问数据所需的URL和有关数据本身的详细信息。这样的示例是“联系人”提供程序,用于访问存储在设备上的所有联系人信息。
根据您尝试访问的所提供的清单声明的外观来判断,我认为它只能由Shazam应用程序本身访问,因此无法访问它提供的数据。