android 调用Lua, Lua脚本启动Intent
android 中的调用
- try {
- mLuaState.LdoString(readStream(getResources().openRawResource(
- R.raw.testLua)));
- // 找到functionInLuaFile函数
- mLuaState.getField(LuaState.LUA_GLOBALSINDEX, "launchIntent");
- mLuaState.pushJavaObject(getApplicationContext());
- mLuaState.call(1, 0);
- } catch (Exception e) {
- e.printStackTrace();
- }
readStream 实现
- private String readStream(InputStream is) {
- try {
- ByteArrayOutputStream bo = new ByteArrayOutputStream();
- int i = is.read();
- while (i != -1) {
- bo.write(i);
- i = is.read();
- }
- return bo.toString();
- } catch (IOException e) {
- Log.e("ReadStream", "读取文件流失败");
- return "";
- }
- }
在Android 工程 res/raw/新建lua脚本 testLua.lua
- -- 启动 intent
- function launchIntent(context)
- -- new 一个java 实例
- local intent = luajava.newInstance("android.content.Intent")
- intent:addFlags(0x10000000)
- intent:setAction("android.intent.action.VIEW")
- -- bind 一个Java实例,调用static 方法
- local uri = luajava.bindClass("android.net.Uri")
- intent:setData(uri:parse("http://blog.csdn.net/hpccn"))
- context:startActivity(intent);
- end
静态类使用
uri = luajava.bindClass("android.net.Uri")
非静态类
intent = luajava.newInstance("android.content.Intent")
在Lua脚本中发启一个Intent, 打开一个网页,就是本人的博客。