好的我想从应用中打开特定的Activity
,而不是我的应用。假设我想打开此包com.test.app
并在该包TestActivity
内打开。我怎么能这样做?
我试过这样的话:
Intent i = new Intent();
i.setClassName(pack, activity);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplicationContext().startActivity(i);
Intent i = new Intent(pack+activity);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplicationContext().startActivity(i);
Intent i = new Intent();
i.setClassName(pack, "."+activity);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplicationContext().startActivity(i);
Intent i = new Intent(pack+"."+activity);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplicationContext().startActivity(i);
所有这些我都有这个错误:
Unable to find explicit activity class {PACKAGE/ACTIVITY}; have your declared this activity in your AndroidManifest.xml?
注意:我的应用已安装了包com.test.app
并且活动TestActivity
。那怎么可能呢?
答案 0 :(得分:2)
首先,您必须确保导出目标活动。它必须使用android:export =“true”显式导出,或者使用intent-filter显式导出。您不能将意图发送到任何应用程序的任何随机活动。
答案 1 :(得分:0)
Intent i = new Intent();// if TestActivity has an action. please add by yourself
i.setClassName("com.test.app", "com.test.app.TestActivity");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);// maybe no use here
getApplicationContext().startActivity(i);
答案 2 :(得分:0)
检查您的设备或模拟器中是否安装了第三方应用程序,然后只有它才能提供正确的结果。
答案 3 :(得分:0)
我想你可能还没有在清单文件中声明新的java类。如果没有,那么打开您的清单文件,打开ANdroidmanifest.xml并在标签下面的标签中写下这个