Version 1.4#
Note: not everything was documented back then, some 1.6-Functions might exist as well. Maybe with less parameters.
Configuration#
config.set(path, value)#
Set a config value under path.
config.get(path)#
Get a config value under path. Returns a string.
config.unregister(path, function)#
Unregister callback function for the specified path.
config.register(path, function)#
Register for notifications on the specified path.
The callback function is called with the changed path as first parameter. The return value is ignored.
HTTP Client Functions#
http.request( url, callback, [[method, ] content, ] headers)#
Perform HTTP request manually specifying method, content and headers.
Method defaults to GET. This function is called by get, post and put.
The response goes to the supplied callback function, which is called with three parameters:
-
responseCodeis an integer HTTP response code (200, 404, ...) -
responseBodyis a string with the content of the response body -
responseHeadersis a table mapping string keys to string values Any return value from the function is ignored.
You can optionally supply request headers as a table mapping string keys to string values.
http.get(url [, callback [, headers]])#
Perform HTTP GET for url. See function request for details.
http.post(url [, callback [, content [, headers]]])#
Perform HTTP POST for url, optionally sending content. See function request for details.
http.put(url [, callback [, content [, headers]]])#
Perform HTTP PUT for url, optionally sending content. See funtion request for details.
HTTP Server Functions#
http.listen(url, callback)#
Listen for HTTP requests under url. Returns handle which can be passed to stop_listen.
The full URL is https://ip-of-phone/api/v1/exec/<url>.
The response goes to the supplied callback function, which is called with three parameters:
-
urlis the requested url as a string -
bodyis the request body as a string -
headersis a table mapping string keys to string values Any return value from the function is ignored.
http.stop_listen(handle)#
Stop listening for HTTP requests. Parameter handle must be return value from previous call
to listen.
DEBUG Functions#
debug.getLoadableLibs()#
Returns a list of all Libraries that can be called into any LuaScript using require("[libname]").
In 1.4 this only lists the modules of the luaLibraries. Since 1.6 it also provides the 'backed-in' libraries we've added into the firmware (currently a subset of the penlight-library).
debug.log(message, level)#
Post a log-message into androids logcat-system. Logcat-Category (e.g. to filter for) will be "LuaScript".
The message-parameter can be any non-empty-string.
The level-parameter must be a string that starts with either:
-
'e' (error)
-
'w' (warning)
-
'i' (info) -> might not be logged, see warning below
-
'd' (debug) -> might not be logged, see warning below
-
'v' (verbose) -> default when level doesn't start with one of these characters - usually never included in log, see note below
Info
Since 1.6 there is a setting that limits logs to only show ERRORs and WARNINGs. To enable logs up to DEBUG, you need to set Access -> Extended Logging.
Info
VERBOSE logs usually do not show up, unless you use androids adb-tool to connect to your phone and increase the log sensitivity with `adb shell setprop log.tag.LuaScript VERBOSE
SYSTEM Functions#
system.toast( text:string )#
Displays the provided text for a few seconds.
JSON Functions#
json.eval(str)#
Parse a string and return a Lua table of the contents.
json.insert(object, [index,] value)#
Insert a new element into a table representing a JSON array.
Also available on objects returned by functions of this module.
json.object([table])#
Create a JSON object, optionally passing content as a Lua table.
json.array([table])#
Create a JSON array, optionally passing content as a Lua table, which must have the semantics of a Lua array (integer keys starting at 1 and consecutive).
json.tostring(obj)#
Return string representation of JSON object.
Also available as the __tostring metamethod on objects returned by functions of this module.
Key and Led Functions#
On Key presses, a function onKeyUp() is called if present.
key.setLed(color [, blink])#
Set LED corresponding to the key to the specified color.
Allowed values are red, green, yellow and off.
blink is a boolean, defaulting to false.
SIP Functions#
sip.subscribe(uri [, type [, line]], callback)#
Subscribe a resource. Type is an integer describing the Subscription type.
Currently only 0 is supported for the dialog package.
line is the number of the identity to use for subscription, defaults
to the currently selected identity if not specified.
Return value is a userdata representing the subscription which can be used for unsubscribe.
On incoming Notify-messages the callback is called with three parameters:
-
datais the raw content of the notify message -
urlis the subscribed url as a string -
identityis the number of the identity to use The return value of the callback is ignored.
sip.unsubscribe(handle)#
Unsubscribe a resource previously subscribed with subscribe.
sip.invite(uri [, pickup][, line]) in 1.0#
Send an invite, optionally attempting pickup if second parameter is true.
line is the number of the identity to use, defaults to the currently
selected identity if not specified.
sip.invite(uri [, pickup][, line][, hidden]) since 1.2#
Parameter hidden if true hides the call from the user.
Supports named arguments uri:string, pickup:bool, hidden:bool, line:string.
E.g.: sip.invite{uri="sip:570@192.168.0.1",hidden=true}
XML Functions#
xml.new(tableOrTag)#
Construct new XML object. If tableOrTag is a table, use it (and setup
metatable for object-like access). If tableOrTag is a string, use it
as the tag.
xml.append(obj, tableOrTag)#
Construct new XML object like new and append it to the child elements
of obj.
Also available on objects returned by function of this module.
Returns the newly created element.
xml.tag(obj [,tag])#
Returns or sets the tag of the object.
If tag is nil, returns the current tag, otherwise sets
it to tag.
Also available on objects returned by functions of this module.
xml.appendtext(obj, text)#
Append text to the xml object obj.
Also available on objects returned by functions of this module.
Returns the object.
xml.find(obj [, tag[, key[, value]]])#
Find an element with tag tag and attribute key with value value. tag can be
nil or %%""%% to find an element with any tag. If key is not nil or %%""%%, the
element must have an attribute with this key. If value is not nil, the
attribute must have this value.
Also available on objects returned by functions of this module.
Returns the found object or nil if not found.
xml.tostring(obj)#
Return string representation of XML object.
Also available as the __tostring metamethod on objects returned by functions of this module.
xml.eval(xmlStr)#
Reads xmlStr and transforms each element to a table entry. Behaves similar to xml.eval(xmlstring)