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

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

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

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

3 ответа

Решение

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

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

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

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

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

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

Другие вопросы по тегам