我是Pyjnius,Java和Android API的新手。请原谅我在下一段中对它们缺乏了解。通过使用Pyjnius和Android API,我试图从正在构建的应用程序中启动另一个应用程序,然后返回到我的应用程序。例如,假设我的应用程序是应用程序1,另一个应用程序是应用程序2。我想从app#1开始,启动app#2,然后在我设置的特定时间返回到app#1。基本上,我所做的是我设置了一个活动,并使用getLaunchIntentForPackage启动了app#2并完成了该活动。我可以成功启动app#1。然后,我启动了一个新活动,以使用相同的getLaunchIntentForPackage启动应用程序1。不幸的是,我遇到一个错误,说
"jnius.jnius.JavaException: JVM exception occurred: Attempt to invoke virtual method 'boolean android.content.Intent.migrateExtraStreamToClipData()' on a null object reference."
我用Google搜索了此错误的可能解决方案。我找到了以下网站:Intent.migrateExtraStreamToClipData() on a null object reference 坦白说,在Python中,我不确定如何从上面的网站实现第一个建议的方法。我想知道上述网站上来自Java的super是否与Python中的super相同。另外,我不确定如何根据上述webiste的建议在python中创建“新意图”。我不确定如何从Java导入“新”到Python。 我做了以下事情:
if platform == 'android':
print("Everything is fine!");
PythonActivity = autoclass('org.kivy.android.PythonActivity');
activity = PythonActivity.mActivity
currentActivity = cast('android.app.Activity', activity)
pm = currentActivity.getPackageManager()
LaunchIntent = pm.getLaunchIntentForPackage("The name of package that I would like to open");
currentActivity.startActivity(LaunchIntent);
currentActivity.finish()
sleep(5) #5 seconds of waiting
print("\n\n\n\n It is the time to go back!! \n\n\n\n")
activity2 = PythonActivity.mActivity
currentActivity2 = cast('android.app.Activity', activity2)
pm2 = currentActivity2.getPackageManager()
LaunchIntent2 = pm2.getLaunchIntentForPackage("org.test.App") #my app package name or app that I want to go back to
currentActivity2.startActivity(LaunchIntent2)
如果有人能对此有所启发,我将深表感谢。谢谢您的宝贵时间。