1

我用 Python 和 Kivy 做了一个应用程序。使用 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 文件。

提前谢谢了

4

1 回答 1

1

您不想(实际上不能)使用子流程。相反,您必须使用 pyjnius 创建一个包含有关您的任务的信息的 Android Intent,然后 Android 可以使用它为用户构建可用应用程序的列表。

您可以在此处找到一个关于此的示例,用于电子邮件发送意图,但细节应该非常相似。您可能还想稍微了解一下 Android api 以了解发生了什么。

于 2016-05-17T15:04:01.437 回答