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 ""; } }
-- 启动 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, 打开一个网页,就是本人的博客。