我用Python和Kivy制作了一个应用程序。 Générated与buildozer建立了一个apk文件。
在这个应用程序中,我生成* .xlsx文件。我想添加一个按钮,使用google Sheets应用程序直接打开xlsx文件。
但我不知道如何做到这一点。我知道python上的suprocess系统,但我怎么能调用android应用程序?
我在谷歌搜索但我没有找到任何信息。
你有个主意吗?
编辑2:我找到了解决方案。我发布了结果代码。
## Call pyjnius for call intent
# Request the kivy activity instance
PythonActivity = autoclass('org.renpy.android.PythonActivity')
# Get the Android Intent class
Intent = autoclass('android.content.Intent')
## get the URI android
Uri = autoclass('android.net.Uri')
## Get the File object
File = autoclass('java.io.File')
## String object
String = autoclass('java.lang.String')
#create a new Android Intent
p__intent = Intent()
# Set the action of the intent
p__intent.setAction(Intent.ACTION_VIEW)
# Set the intent myme type file
p__intent.setDataAndType(Uri.fromFile(File(p__current_file_month)),String("application/vnd.ms-excel"))
## Set extra to put the filename
p__intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
p__currentActivity = cast('android.app.Activity', PythonActivity.mActivity)
# Run the intent activity
p__currentActivity.startActivity(p__intent)
此代码正确打开* .xlsx文件。
非常感谢提前
答案 0 :(得分:1)
您不想(并且实际上不能)使用子流程。相反,您必须使用pyjnius创建一个Android Intent,其中包含有关您的任务的信息,Android可以使用该信息为用户构建可用应用程序列表。
对于发送意图的电子邮件,您可以找到有关此here的示例,但详细信息应该非常相似。您可能还想了解一下Android api,了解一下发生了什么。