首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从SL4A脚本启动SL4A脚本

从SL4A脚本启动SL4A脚本
EN

Stack Overflow用户
提问于 2013-04-05 10:09:09
回答 2查看 1.6K关注 0票数 2

我想从不同的SL4A脚本中启动后台SL4A脚本(在远程设备上)。我可以通过运行下面这样的命令从终端启动脚本:

代码语言:javascript
复制
$ am start -a \
com.googlecode.android_scripting.action.LAUNCH_BACKGROUND_SCRIPT -n \
com.googlecode.android_scripting/.activity.ScriptingLayerServiceLauncher -e \
com.googlecode.android_scripting.extra.SCRIPT_PATH /sdcard/sl4a/scripts/main.py

我不能在Python语言中将其转换为startActivity调用。

a different question on on a Twitter client的答案运行良好,但我不知道如何扩展该代码。例如,如何添加脚本路径,以及将行com.googlecode.android_scripting/.activity.ScriptingLayerServiceLauncher放在何处

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-06 21:48:59

在多次失败的尝试之后,我现在可以在Ruby中工作了--我用这种方式生成JSON附加代码比在Python中更容易。

重要!在命令行版本中,可以在"com.googlecode.android_scripting/.activity.ScriptingLayerServiceLauncher“上调用

在脚本中,这被称为不带斜杠的"com.googlecode.android_scripting.activity.ScriptingLayerServiceLauncher",。在斜杠中留下崩溃的sl4a。

代码

需要'android‘需要'json/pure’

d=Android.new

script = '/sdcard/sl4a/scripts/YOUR_SCRIPT‘

数据= {"com.googlecode.android_scripting.extra.SCRIPT_PATH"=>script}

extras =JSON.generate(数据)

d.startActivity('com.googlecode.android_scripting.action.LAUNCH_BACKGROUND_SCRIPT','','',data,true,'com.googlecode.android_scripting','com.googlecode.android_scripting.activity.ScriptingLayerServiceLauncher')

/code

我希望这能帮到你!

票数 0
EN

Stack Overflow用户

发布于 2013-05-23 13:18:44

此函数将从另一个脚本内部启动任何SL4A脚本。

第一个参数应该是要启动的脚本的路径。脚本可以是您安装了解释器的任何语言。

第二个参数是可选的,应该是布尔值。默认为False。它控制终端是否可见,这样您就可以看到输出和错误。它不会影响脚本是否有UI。

代码语言:javascript
复制
from android import Android
droid = Android()

def launch_script(path, visible=False):

    visibilty   = 'FORE' if visible else 'BACK'
    activity    = 'com.googlecode.android_scripting.action.LAUNCH_{0}GROUND_SCRIPT'.format(visibilty)
    extras      = {'com.googlecode.android_scripting.extra.SCRIPT_PATH': path}
    packagename = 'com.googlecode.android_scripting'
    classname   = 'com.googlecode.android_scripting.activity.ScriptingLayerServiceLauncher'
    intent      = droid.makeIntent(activity, None, None, extras, None, packagename, classname).result

    droid.startActivityIntent(intent)

有一个gist for this code here

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15824782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档