Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Вызов внешнего приложения

Автор вопроса: EbyОтветов: 3

Как я могу вызвать внешнее приложение из моего приложения?

Например: мне нужно вызвать Shazam (приложение) из моего приложения. Я вижу имя пакета приложения в файле logcat.

это будет полезно для каких-либо целей?

androidandroid-intentshazam

Ответы

Ответ 1 · рейтинг 1 · Codevalley

Вы можете вызвать активность стороннего приложения следующим образом.

final Intent shazamIntent = new Intent("com.shazam.android");
shazamIntent .setComponent(new  ComponentName("com.shazam.android","com.shazam.android.Splash"));
startActivity(shazamIntent );

Но это не лучший способ сделать это. В случае изменения имени пакета (что очень маловероятно) или изменения имени активности (Splash может измениться на что-то другое) ваше приложение сломается. Если у Shazam есть намерение, которое можно вызвать, чтобы начать прослушивание песни, используйте его (не уверен, что оно у них есть).

Также сделайте необходимую проверку, если Shazam не установлен, чтобы ваш звонок не вылетал.

Ответ 2 · рейтинг 1 · Gopinath

Создайте объект намерения запуска приложения и скажите startActivity.

Ответ 3 · рейтинг 1 · amartynov

Специально для 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.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы