flutter 如何使用Intent打开和切换其他应用

tkclm6bt  于 2023-10-22  发布在  Flutter
关注(0)|答案(1)|浏览(159)

在换电脑之前,

Intent intent = context.getPackageManager().getLaunchIntentForPackage("com.x.y");
    if (intent != null) {
    // We found the activity now start the activity
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        Bundle b = new Bundle();
        b.putString(_key, _data);
        intent.putExtras(b); //Put your id to your next Intent
        context.startActivity(intent);

        return true;
}

我可以打开和切换com.x.y应用程序。它运行得很好,但几个月前,我换了电脑,下载了最新版本的Android Studio。
构建时没有问题,但是当我运行这段代码时,我的Flutter应用程序只是打开app com.x.y,而不是切换。在换电脑之前,它打开并切换到app com.x.y很好。
此外,它在使用Android 8.1的设备中运行良好,但在使用Android 13的设备中则不行。

14ifxucb

14ifxucb1#

您似乎正在尝试在Android Java中使用Intent打开另一个应用程序。但是,在切换到新计算机并更新Android Studio后,代码的行为发生了变化。
要使用Intent打开并切换到另一个应用程序,您可以尝试以下步骤:
1.请确保您拥有要打开的应用程序的正确包名称。在您的示例中,包名是“com.x.y”。
1.创建Intent对象以启动应用:

Intent intent = 
            context.getPackageManager().getLaunchIntentForPackage("com.x.y");

1.检查Intent是否不为空(即应用程序已安装在设备上):

if (intent != null) {
    // We found the activity, now start the activity
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    Bundle b = new Bundle();
    b.putString(_key, _data);
    intent.putExtras(b); // Put your id or data into the next Intent
    context.startActivity(intent);

    return true;
}

1.如果Intent为null,则表示设备上未安装应用程序。你可以按照你的要求处理这个案子。

相关问题