我正在尝试从我的Activity中打开另一个应用程序,这是我的意图:
Intent intent = new Intent();
intent.setComponent(
new ComponentName(
"com.bifit.cashdesk.mobile",
"com.bifit.cashdesk.mobile.views.StartActivity"
)
);
intent.putExtra("pin", "");
String token = preferences.getString("kassatoken","");
intent.putExtra("token",token);
intent.putExtra("receipt_bundle",json);
startActivity(intent);
但是当我运行此代码时,我得到下一个错误:
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.bifit.cashdesk.mobile/com.bifit.cashdesk.mobile.views.StartActivity}; have you declared this activity in your AndroidManifest.xml?
我还尝试检查是否有任何系统应用程序可以处理此意图:
PackageManager packageManager = getPackageManager();
List activities = packageManager.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
boolean isIntentSafe = activities.size() > 0;
isIntentSafe始终为false,但我安装了包名为“com.bifit.cashdesk.mobile”的Application。这个应用程序已经打开了。
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
也没有帮助。
什么可能导致此错误?这个意图的代码取自该service \ app的官方文档。我已经向他们的支持发送了电子邮件,但我的代码可能有问题?
答案 0 :(得分:1)
要打开其他应用,您可以使用此功能:
intent = new Intent("com.example.hasib.videoplayer.MediaPlayerActivity");
startActivity(intent);
答案 1 :(得分:0)
如果只有包名,则可以使用PackageManager.getLaunchIntentForPackage()
来构建意图。例如:
Intent intent = getPackageManager().getLaunchIntentForPackage("com.bifit.cashdesk.mobile");
if (intent != null) {
startActivity(intent);
}
如果它不起作用,则可以使用apkanalyzer SDK工具提取清单,然后查看其中包含的意图过滤器,以了解如何构建意图来启动它:
apkanalyzer manifest print <some_application.apk>