【问题标题】:Python error when running SL4A script from Tasker (AttributeError: type object 'Android' has no attribute 'getIntent')从 Tasker 运行 SL4A 脚本时出现 Python 错误(AttributeError: type object 'Android' has no attribute 'getIntent')
【发布时间】:2014-06-01 19:44:27
【问题描述】:

我正在尝试在我的 Android (4.4) 手机上使用 SL4A 从 Tasker 调用 Python 脚本。我为此使用了 Run SL4A Script 任务。作为一个测试练习,我想从 Tasker 传递一个字符串并在 Python 中使用它(现在只是打印它)。

根据下面的链接,这可以通过在运行 SL4A 脚本任务中设置“传递变量”字段并使用 Python 中的 Android getIntent 方法来完成。 (https://groups.google.com/forum/#!topic/taskerpro/mQIv1PBu3PU)

这是我的 Python 脚本:

import android
droid = android.Android
params = droid.getIntent().result[u'extras']
print params[0]

但是,当我运行任务时,我在 SL4A 中收到以下错误: AttributeError:类型对象“Android”没有属性“getIntent”

有人知道我为什么会得到这个以及如何解决它吗?我在其他地方找不到任何参考。

【问题讨论】:

    标签: android python sl4a tasker


    【解决方案1】:

    我不知道从 Tasker 调用,但 Python 脚本在 SL4A Release 6 和 Python 解释器 Py4A Release 5 上独立运行良好。

    如果您还没有安装所有东西,这里有一些我最近在 Android 开发者聚会上展示的 some slides

    【讨论】:

    • 谢谢斯科特。我已经更新了 SL4A r6 和 Py4A r5,但仍然出现相同的错误。
    • 我建议首先通过 SL4A 编辑器运行您的脚本。这会让你知道问题是在你的脚本中还是由 Tasker 环境引起的。
    【解决方案2】:

    我认为您只是缺少 Android 导入中的括号。

    我用:

    导入安卓

    机器人 = android.Android()

    你也可以试试:

    从安卓导入安卓

    机器人 = Android()

    这使得 Android 在 python 中正确地成为一个对象,您应该能够正确地调用 getIntent 和其他函数。

    为了节省测试 android 模块是否正常工作的时间,我还添加了:

    默认吐司(x):

    x = str(x)
    
    droid.makeToast(x)
    

    然后你可以将变量传递给新定义的 toast(x) 函数。

    希望我有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-27
      • 2022-09-28
      • 2023-02-18
      • 1970-01-01
      • 2021-11-08
      • 2020-08-28
      • 2020-07-25
      • 2022-12-01
      相关资源
      最近更新 更多