我想在shazam中开始搜索Activity
。根据this,没有搜索Activity
到shazam,只有一个<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 );
等等...
我也检查了这些帖子 post 1 和post 2。但发现没有任何帮助。
最佳答案
ContentProvider
不能由Activity
之类的意图“启动”。
提供程序是一个组件,旨在为某些数据提供接口。数据可以通过ContentResolver
访问。
某些ContentProvider
还允许从其他应用访问。这通常记录在某处,提供访问数据所需的URL以及有关数据本身的详细信息。这样的示例是联系人提供程序,用于访问存储在设备上的所有联系信息。
从您尝试访问的提供的清单声明的外观来看,我认为它只能由Shazam应用程序本身访问,因此无法访问它提供的数据。