Вызов внешнего приложения - PullRequest
3 голосов
/ 25 января 2011

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

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

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

Ответы [ 3 ]

1 голос
/ 25 января 2011

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

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

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

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

1 голос
/ 26 января 2015

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

1 голос
/ 25 января 2011

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

...