Как я могу вызвать внешнее приложение из моего приложения?
Например: мне нужно вызвать Shazam
(приложение) из моего приложения. Я вижу имя пакета приложения в файле logcat
.
это будет полезно для каких-либо целей?
Как я могу вызвать внешнее приложение из моего приложения?
Например: мне нужно вызвать Shazam
(приложение) из моего приложения. Я вижу имя пакета приложения в файле logcat
.
это будет полезно для каких-либо целей?
Вы можете вызвать активность стороннего приложения следующим образом.
final Intent shazamIntent = new Intent("com.shazam.android");
shazamIntent .setComponent(new ComponentName("com.shazam.android","com.shazam.android.Splash"));
startActivity(shazamIntent );
Но это не лучший способ сделать это. В случае изменения имени пакета (что очень маловероятно) или изменения имени активности (Splash
может измениться на что-то другое) ваше приложение сломается. Если у Shazam есть намерение, которое можно вызвать, чтобы начать прослушивание песни, используйте его (не уверен, что оно у них есть).
Также сделайте необходимую проверку, если Shazam не установлен, чтобы ваш звонок не вылетал.
Создайте объект намерения запуска приложения и скажите startActivity.
Специально для Shazam работает следующий код:
Intent intent = new Intent("com.shazam.android.intent.actions.START_TAGGING");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if(!context.getPackageManager().queryIntentActivities(intent, 0).isEmpty()) {
context.startActivity(intent);
} else {
// Shazam is not installed
}
START_TAGGING
— это намерение, которое выдается при касании виджета Shazam.