尝试 Android Scripting Environment 之四
来源:互联网 发布:开心英语软件下载 编辑:程序博客网 时间:2024/06/05 21:54
尝试 Android Scripting Environment 之四
作者: 宋立新
Email:zjujoe@yahoo.com
前言
随着学习的深入,我们准备去修改一下源码,扩充其API 以满足我们自己的个性化要求!比如,能够拨打一个电话,并返回该电话是否成功,是对方忙还是网络信号不好等等。
编译
按照 ASE 的 WiKi 上的文档,基本就可以了。几个注意点:
1) ASE 需要使用 Java1.6
2) AndroidScriptingEnvironmentTest 需要造一个 res 目录,才能编译通过。
添加代码
考虑到代码的干净性,我们决定添加一个项目,在其中添加我们自己开发的 API 函数.
TextToSpeechFacade 比较简单,我们就模仿它了。
cp –a TextToSpeechFacade DragonCustomFacade
然后搜索一下需要修改的地方:
$ find . | xargs grep TextToSpeechFacade
./AndroidScriptingEnvironment/src/com/google/ase/facade/FacadeConfiguration.java: list.addAll(MethodDescriptor.collectFrom(TextToSpeechFacade.class));
./AndroidScriptingEnvironment/src/com/google/ase/facade/FacadeConfiguration.java: receivers.add(new TextToSpeechFacade(service));
./AndroidScriptingEnvironment/.classpath: <classpathentry combineaccessrules="false" kind="src" path="/TextToSpeechFacade"/>
./DragonCustomFacade/src/com/google/ase/facade/TextToSpeechFacade.java:public class TextToSpeechFacade implements RpcReceiver {
./DragonCustomFacade/src/com/google/ase/facade/TextToSpeechFacade.java: public TextToSpeechFacade(Service service) {
./DragonCustomFacade/.project: <name>TextToSpeechFacade</name>
这样, 我们需要修改的地方有:
Ø AndroidScriptingEnvironment/src/com/google/ase/facade/FacadeConfiguration.java
中的两处,这里是把一个 Façade类挂接到系统中以及初始化该类。所以我们需要把我们的DragonCustomFacade相应代码加入,注意初始化函数有几种形式,按需。
Ø ./AndroidScriptingEnvironment/.classpath
这里是定义依赖关系,简单模仿。
Ø ./DragonCustomFacade/src/com/google/ase/facade/TextToSpeechFacade.java
将该Java 文件改为DragonCustomFacade.java, 并修改其中的内容。 作为示例,我们只是现实一个Toast对话框。后续,我们可以按需扩充其中的功能。
package com.google.ase.facade;
import android.app.Service;
import android.widget.Toast;
import com.google.ase.jsonrpc.RpcReceiver;
import com.google.ase.rpc.Rpc;
import com.google.ase.rpc.RpcParameter;
import android.os.Handler;
public class DragonCustomFacade implements RpcReceiver {
private final Handler mHandler = new Handler();
private final Service mService;
public DragonCustomFacade(Service service) {
mService = service;
}
@Override
public void shutdown() {
}
@Rpc(description = "Displays a short-duration Toast notification.")
public void DragonMakeToast(@RpcParameter(name = "message") final String message) {
mHandler.post(new Runnable() {
public void run() {
Toast.makeText(mService, message, Toast.LENGTH_SHORT).show();
}
});
}
}
编译,运行,并用python脚本调用我们的函数:
$ cat t2.py
import android
droid = android.Android()
droid.DragonMakeToast('Hello, Dragon!')
运行之,发现可以打印出 Hello, Dragon!
参考
1. 编译 ASE
http://code.google.com/p/android-scripting/wiki/CompilingASE
- 尝试 Android Scripting Environment 之四
- 尝试 Android Scripting Environment 之四
- 尝试 Android Scripting Environment
- 尝试 Android Scripting Environment
- 尝试 Android Scripting Environment
- 尝试 Android Scripting Environment之二
- 尝试 Android Scripting Environment 之三
- 尝试 Android Scripting Environment 之二
- 尝试 Android Scripting Environment 之二
- 尝试 Android Scripting Environment 之三
- Android Scripting Environment
- Android Scripting Environment
- Android Scripting Environment R15 发布
- Android Scripting Environment r17 发布
- Android Scripting Environment r17 发布
- Android传感器学习四---Environment Sensor
- 【WebGoat笔记】之四 --- Cross-Site Scripting (XSS)
- android从零单排之Environment
- Ajax 读取相关产品(JQuery)
- ubuntu下内核的编译
- 字符,字节及编码
- Oracle中时间查询问题(时间是String型)
- flash 加载txt文件获取文件中的变量值
- 尝试 Android Scripting Environment 之四
- 《李天命的思考艺术》笔记
- 性能测试—两个月总结
- android电源管理之framework层
- 平时没注意的++运算符
- 有人说加班是个人能力不行,我看不是。
- glassfish安装与部署
- 如何正常关闭android应用
- 实训……