如何从我的应用程序启动一个应用程序并使用Android API返回我的应用程序?

时间:2019-08-16 21:45:34

标签: android pyjnius

我是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)

如果有人能对此有所启发,我将深表感谢。谢谢您的宝贵时间。

0 个答案:

没有答案