1

我想知道是否有另一种方法可以切换到不同的应用程序?内置的任务切换器不会导致 Pokemon Go 重新启动。有没有办法调用它?

我一直在使用它从我的应用程序切换并打开 Pokemon Go

PackageManager manager = context.getPackageManager();
Intent intent = manager.getLaunchIntentForPackage("com.nianticlabs.pokemongo");
intent.addCategory(Intent.CATEGORY_LAUNCHER);

几个月前,这让 Pokemon Go 开始黑屏。解决方法是关闭 Pokemon Go,然后通过我的应用程序切换到 Pokemon Go 来启动它。第一次将按预期从 Pokemon Go 的加载屏幕开始,但之后会在应用程序之间正确切换。

Pokemon Go 的最新版本似乎通过每次切换到 Pokemon Go 时总是重新启动来解决黑屏问题。我在他们的 AndroidManifest.xml 中找到了另一个意图过滤器,它可以工作,但它也会导致应用程序重新启动。

Uri uri = Uri.parse("http://pokemongolive.com/launchapp");
Intent pokemonGoIntent = new Intent(Intent.ACTION_VIEW, uri);
if (pokemonGoIntent.resolveActivity(getPackageManager()) != null)
     startActivity(pokemonGoIntent);

是另一种切换到另一个应用程序的方法吗?即使我的应用程序已加载并运行,内置的任务切换器也不会导致 Pokemon Go 重新启动。

4

2 回答 2

0

在查看了一些日志文件后,我看到了一些可疑消息。我找到了相应的 API 调用,这似乎对我有用。

Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setComponent(new ComponentName("com.nianticlabs.pokemongo", "com.nianticproject.holoholo.libholoholo.unity.UnityMainActivity"));
intent.setFlags(Intent.FLAG_RECEIVER_FOREGROUND | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
startActivity(intent);
于 2018-06-18T11:43:57.310 回答
0

经过一整天的测试,我终于设法找到了解决方案。这个对我有用:

Intent poGoIntent = activity.getPackageManager().getLaunchIntentForPackage("com.nianticlabs.pokemongo");
poGoIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
activity.startActivity(poGoIntent);

让我知道它是否有帮助!

于 2018-03-10T21:56:49.100 回答