Luna Send

From WebOS Internals
Revision as of 17:30, 2 March 2010 by Cimmeriian (talk | contribs) (Added in how to end all calls.)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

NOTE: You have to run with root perms.

Using luna-send to refresh the Launcher panel.

luna-send -n 1 palm://com.palm.applicationManager/rescan {}

Get a list of all installed apps:

luna-send -n 1 "palm://com.palm.applicationManager/listLaunchPoints" "{}"

Using luna-send to launch an application:

luna-send -n 1 palm://com.palm.applicationManager/launch {\"id\":\"com.palm.app.browser\"}
luna-send -n 1 palm://com.palm.applicationManager/launch {\"id\":\"com.palm.app.browser\",\"params\":{\"scene\":\"page\",\"target\":\"http://www.google.com\"}}

The second command shows how to open www.google.com when the browser is launched.

Using luna-send to download a file to /media/internal/downloads/:

luna-send -n 1 palm://com.palm.downloadmanager/download {\"target\":\"http://www.google.com/index.html\"}  

Replace www.google.com/index.html with whatever file you want downloaded.

Using luna-send to control the palm progress animation (The pulsing "palm" logo seen at boot):

luna-send -n 1 palm://com.palm.systemmanager/runProgressAnimation {\"state\":\"start\"}
luna-send -n 1 palm://com.palm.systemmanager/runProgressAnimation {\"state\":\"stop\"}

TODO: These should probably be plugged into the Tracker app.

luna-send -n 1 palm://com.palm.location/setUseGps {\"useGps\":\"true\"}
luna-send -n 1 palm://com.palm.location/setAutoLocate {\"autoLocate\":\"true\"}
luna-send -n 1 palm://com.palm.location/getCurrentPosition {}

List all of the processes which are running:

sudo luna-send -n 1 palm://com.palm.applicationManager/running {}
** Message: serviceResponse Handling: 2, { "running": [ { "id": "com.palm.launcher", "processid": "1006" }, { "id": "com.palm.systemui", "processid": "1007" }, { "id": "com.palm.app.email", "processid": "1000" }, { "id": "com.palm.app.phone", "processid": "1001" }, { "id": "com.palm.app.contacts", "processid": "1002" }, { "id": "com.palm.app.camera", "processid": "1003" }, { "id": "com.palm.app.messaging", "processid": "1004" }, { "id": "com.palm.app.calendar", "processid": "1005" }, { "id": "com.palm.app.phone", "processid": "1008" }, { "id": "com.palm.app.camera", "processid": "1014" } ] }

Interesting note: Seems everything with a processid below 1008 are static. As seen above, open camera app has pid 1014 and startup app is pid 1003

Close a process:

luna-send -n 1 "palm://com.palm.applicationManager/close" "{\"processId\":\"1058\"}"

Activate the vibrator:

luna-send -n 1 palm://com.palm.vibrate/vibrate {\"period\":1,\"duration\":1000\}

The duration value is in milliseconds and can be adjusted as desired.

Photos Info - list album and image from mediadb.db3:

luna-send -n 1 luna://com.palm.mediadb/image/listalbums {}
luna-send -n 1 luna://com.palm.mediadb/image/listimages {}

Set system volume - "volume" range is 0-100

luna-send -n 1 palm://com.palm.audio/system/setVolume '{"volume":80}'

Set ringtone volume - "volume" range is 0-100

luna-send -n 1 palm://com.palm.audio/ringtone/setVolume '{"volume":100}'

Dial a number - this actually calls the number, not just setup

luna-send -n 1 palm://com.palm.telephony/dial '{"number":"8001234567"}'

Hang up a phone call :-) There are ways to end specific types of calls but I think this is good enough for now. Let me know if you want the other methods.

luna-send -n 1 palm://com.palm.telephony/hangupAll {}

Send a text message - only need to change phone "value" and "messageText"

luna-send -n 1 palm://com.palm.messaging/sendMessageFromCompose '{"recipientJSONArray": [{"lastName": "", "pictureLoc": "", "contactCount": 1, "displayText": "", "firstName": "", "pictureLocBig": "", "imAvailability": 6, "pictureLocSquare": "", "contactDisplay": "", "Person_id": "", "personId": "", "type": "phone", "value": "8165551234", "alreadyValidated": true, "prefix": "to$A", "identifier": ""}], "messageText": "Content of message here"}'

set phone to no roam (home network only)

luna-send -n 1 palm://com.palm.telephony//roamModeSet '{"mode":"homeonly"}'

set phone to auto roam

luna-send -n 1 palm://com.palm.telephony//roamModeSet '{"mode":"any"}'

set phone to roam only

luna-send -n 1 palm://com.palm.telephony//roamModeSet '{"mode":"roamonly"}'


Storage

Enter usb storage mode:

luna-send -n 1 palm://com.palm.storage/diskmode/enterMSM {\"user-confirmed\":true,\"enterIMasq\":false}

Exit usb storage mode (toggle):

luna-send -n 1 palm://com.palm.storage/diskmode/enterMSM {\"user-confirmed\":true,\"enterIMasq\":false}

--WOOT--

Airplane Mode

Enable Airplane Mode:

luna-send -n 1 palm://com.palm.systemservice/setPreferences '{"airplaneMode":true}'

Disable Airplane Mode:

luna-send -n 1 palm://com.palm.systemservice/setPreferences '{"airplaneMode":false}'


Finding luna-send Command

These commands come from inside given applications. The best way to find luna-send commands is to do a search for the term "method:" in the Applications code. Once you find method: you might see parameters: which is also used by luna-send here is an example.

searched for "method:" in the com.app.palm.AppYouAreTesting

found

"method: test"

luna-send command based on example:

luna-send -n 1 palm://com.palm.AppYouAreTesting/test {}

General luna-send command:

luna-send -n 1 palm://ApplicationName/MethodValue {ParameterValues}

Searching for services with dbus

Run dbus-util capture and search for services/methods/parameters. - xorg

# dbus-util --capture 2>&1 |tee /tmp/dbus.dump

Perform functions on device that you want to trap, such as setting phone to automatic roaming.
Ctrl-c from dbus.

Searches to try...
# grep // /tmp/dbus.dump
# grep com.palm /tmp/dbus.dump
# grep palm:// tmp/dbus.dump
# grep roam /tmp/dbus.dump

This is found in the dump...
  com.palm.luna2  com.palm.telephony      //roamModeSet   «string=â{"mode": "homeonly"}

com.palm.telophony is the service
//roamModeSet is the method
"mode":"homeonly" is the parameter

Translate to luna-send...

luna-send -n 1 palm://com.palm.telephony/roamModeSet '{"mode":"homeonly"}'