如何启动 <provider/> 标签(启动 Shazam 搜索 activity)

How to launch a <provider/> tag (Launching Shazam search activity)

我想在 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 post 1 and post 2。但没有找到任何帮助。

ContentProvider 不能像 Activity.

这样的意图 "launched"

提供程序是一个组件,旨在为某些数据提供接口。可以通过 ContentResolver 访问数据。

一些 ContentProvider 还允许从其他应用程序访问。这通常记录在某处,提供访问数据所需的 URL 和有关数据本身的详细信息。这样的例子就是联系人提供者,用于访问存储在设备上的所有联系人信息。

从您尝试访问的提供的清单声明来看,我认为它只能由 Shazam 应用程序本身访问,因此无法访问它提供的数据。