2015-06-12 3 views
1

Я хочу создать действие, запускающее внешнее приложение (например, shazam) при нажатии кнопки. Возможно ли это? Как это можно сделать?Android-запуск другого приложения из активности

Спасибо!

+0

Вы пробовали что-нибудь? посмотрите этот http://developer.android.com/training/basics/intents/filters.html – Sree

+1

возможный дубликат [Запуск приложения из другого приложения на Android] (http://stackoverflow.com/questions/3872063/launch- an-application-from-another-application-on-android) – Sree

+0

Я дал вам и надеюсь, что это поможет вам. Посмотрите на это – Tufan

ответ

2

Я нашел решение. В файле манифеста приложения Я нашел имя пакета: com.package.address и имя Mainctivity, которую я хочу запустить:

Следующий код запускает это приложение:

Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.setComponent(new ComponentName("com.package.address","com.package.address.MainActivity")); 
    startActivity(intent); 
+0

, это только начало другого действия с первого действия, а не то, что задано в вопросе –

+0

я отредактировал проверить его – Tufan

+0

хорошо, теперь это может быть рабочим решением! –

0

Вам нужно другое имя приложения пакета (который может быть проверен с помощью ADB, если у вас установлено это приложение)

ADB она ll cmd пакеты пакетов пакетов | Grep Shazam

или вы можете проверить его в Google Play приложение страницу -Take посмотреть на URL: https://play.google.com/store/apps/details?id=com.shazam.android

Тогда просто используйте следующий код (в контексте вы, вероятно, использовать вашу деятельность)

PackageManager pm = context.getPackageManager(); 
    Intent intent = pm.getLaunchIntentForPackage("com.shazam.android"); 
    if (intent != null) { 
     context.startActivity(intent); 
    } 

или вы можете переместить его (как я предлагаю) в отдельный метод, например

public static void openApp(Context context, String appPackageName) { 
    if (context == null) { 
     Log.e("<Class name>","Context is null"); 
     return; 
    } 
    PackageManager pm = context.getPackageManager(); 
    Intent intent = pm.getLaunchIntentForPackage(appPackageName); 
    if (intent != null) { 
     context.startActivity(intent); 
    }else{ 
     Log.e("<Class name>", "Cannot start app, appPackageName:'" + appPackageName + "'"); 
    } 
} 
Смежные вопросы