Как запустить Android Activity из другого приложения?

Я пытаюсь написать приложение, которое запускает Android STK Activity следующим образом:

            Intent intent = new Intent(); 
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
            intent.addCategory(Intent.CATEGORY_LAUNCHER); 
            intent.setAction(Intent.ACTION_MAIN); 
            intent.setComponent(new ComponentName("com.android.stk", "com.android.stk.StkLauncherActivity")); 
            startActivity(intent);

Я продолжаю получать следующую ошибку:

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.stk/com.android.stk.StkLauncherActivity}; have you declared this activity in your AndroidManifest.xml?

Я объявил следующее в моем манифесте:

<activity android:name="com.android.stk.StkLauncherActivity"/>

4 ответа

Попробуйте использовать PackageManager.getLaunchIntentForPackage, который возвращает намерение запустить входную активность в данном пакете:

   PackageManager manager = getPackageManager(); 
   Intent intent =manager.getLaunchIntentForPackage("com.android.stk"); 
   if (intent != null)  
    startActivity(intent); 

Похоже на опечатку на вашей стороне

com.android.stk/com.android.stk2.StkLauncherActivity

stk или же stk2?:)

Чтобы запустить действие из другого приложения, вы можете установить "действие" в фильтре намерений действия в манифесте Android приложения, к которому относится ваша деятельность. И при запуске установите то же "действие" для намерения

Попробуйте этот фрагмент кода ниже

final Intent intent = new Intent(Intent.ACTION_MAIN, null);

intent.addCategory(Intent.CATEGORY_LAUNCHER);
final ComponentName cn = new ComponentName("com.abc.xyz", "com.abc.xyz.MainActivity");
intent.setComponent(cn);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity( intent);

Для более подробной информации перейдите по этой ссылке

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