Как запустить 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);
Для более подробной информации перейдите по этой ссылке