【问题标题】:How to start up an Android Activity from another application?如何从另一个应用程序启动 Android Activity?
【发布时间】:2016-05-26 16:03:32
【问题描述】:

我正在尝试编写一个启动 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"/>

【问题讨论】:

  • 比较一下:intent.setComponent(new ComponentName("com.android.stk", "com.android.stk.StkLauncherActivity"));... {com.android.stk/com.android.stk2.StkLauncherActivity}... ... 你看到 stk2 因为我看到了...
  • 是的,这里打错了,stk 也不起作用。

标签: android android-activity sim-toolkit


【解决方案1】:

尝试使用PackageManager.getLaunchIntentForPackage,它返回在给定包中启动前门活动的意图:

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

【讨论】:

  • 试试吧,如果你传递了正确的 PackageName,我相信这会起作用
  • 意图为空...我很确定 PackageName 是正确的。
  • @Yusufk 然后在它返回 NULL developer.android.com/reference/android/content/pm/… 时查看这里
  • @Yusufk : 但这个应用程序还有其他活动,如 StkSettingsStkMenuActivityStkInputActivity 你可以尝试这些活动来启动,但 StkLauncherActivity 没有为第三方应用程序启用
  • 是的,我尝试了这些,它们的表现确实更好,但它不会启动 STK 菜单,这是我一直在尝试做的。谢谢!
【解决方案2】:

好像是你的错字

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

stk 还是 stk2? :)

【讨论】:

  • stk - 不应该出现在帖子中
【解决方案3】:

要从另一个应用启动 Activity,您可以在您的 Activity 所属应用的 Android 清单的 Activity Intent 过滤器中设置“动作”。启动时为 Intent 设置相同的“动作”

【讨论】:

  • 你有一个例子说明这会是什么样子吗?
  • 例如在要调用的Avtivity中,将Android Manifest中的Intent过滤器设置为 现在在通过 Intent 启动Activity 时,将 Intent 的操作设置为“com.example.nargis.action.MYACTIVITY”,这应该可以工作跨度>
【解决方案4】:

试试下面的代码 sn-p

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);

更多详情Follow this Link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    相关资源
    最近更新 更多