Как запустить тег <provider /> (Запуск поисковой активности Shazam)
Я хочу начать поиск Activity
в шазам. По этому нет поиска 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 );
И так далее...
Также я проверил эти пост пост 1 и пост 2. Но ничего полезного не нашел.
1 ответ
ContentProvider
не может быть "запущен" намерениями как Activity
,
Поставщик - это компонент, предназначенный для предоставления интерфейса для некоторых данных. Данные могут быть доступны ContentResolver
,
Немного ContentProvider
s также позволяют доступ из других приложений. Обычно это где-то документируется, предоставляя URL-адрес, необходимый для доступа к данным, и подробную информацию о самих данных. Таким примером является поставщик контактов, который используется для доступа ко всей контактной информации, хранящейся на устройстве.
Судя по виду декларации манифеста при условии, что вы пытаетесь получить доступ, я думаю, что к нему могут получить доступ только сами приложения Shazam, поэтому нет никакого доступа к данным, которые он предоставляет.