termux
Comprehensive Node.js module for Termux-API
Install
- Make sure you've first installed the termux-api on your Android device from the Play store.
- Then install the scripts with
apt install termux-api
. Finally get this node module:
$
npm install --save termux
Example usage
const api = require('termux')
if (!api.hasTermux) process.exit(1)
api.vibrate()
.duration(1000)
.run()
api.clipboardGet()
.run()
.then(function (text) {
// ...
})
Available methods
Every command instance has the .run()
method that must be used to execute the command. It always return a Promise (eventually with results).
Method | Description | Parameters |
---|---|---|
.toast() |
Show a toast message | |
| set the text to show | .text(<str>) |
|
| show the toast for a short while | .transient() |
|
.vibrate() |
Vibrate your phone | |
| set the duration in milliseconds | .duration(<ms>) |
|
| force vibration even in silent mode | .force() |
|
.batteryStatus() |
Get the status of the device battery | |
.cameraInfo() |
Get info about device camera(s) | |
.cameraPhoto() |
Take a photo and save it to a file (JPEG format) | |
| select the camera by ID | .camera(<id>) |
|
| output photo file (NB. use an absolute path!) | .outputFile(<str>) |
|
.clipboardGet() |
Get the system clipboard text | |
.clipboardSet() |
Set the system clipboard text | |
| text to copy in clipboard | .text(<str>) |
|
.contactList() |
Set the system clipboard text | |
.contactList() |
List all contacts | |
.dialog() |
Show a text entry dialog | |
| dialog title | .title(<str>) |
|
| hint to show when input is empty | .hint(<str>) |
|
| use a textarea with multiple lines | .multipleLines() |
|
| enter the input as a password | .password() |
|
.download() |
Download a resource using the download manager | |
| set the resource to download | .url(<str>) |
|
| title for the download request | .title(<str>) |
|
| description for the download request | .description(<str>) |
|
.infraredFrequencies() |
Query the infrared transmitter's supported carrier frequencies | |
.infraredTransmit() |
Transmit an infrared pattern | |
| specify the pattern to transmit as array of numbers | .frequency(<Array>) |
|
.location() |
Get the device location | |
| location provider (gps/network/passive) | .provider(<enum>) |
|
| kind of request to make (once/last/updates) | .request(<enum>) |
|
.notification() |
Display a system notification | |
| notification content to show | .content(<str>) |
|
| notification id (will overwrite any previous notification with the same id) | .id(<int>) |
|
| notification title to show | .title(<str>) |
|
| notification url when clicking on it | .url(<str>) |
|
| notification action when clicking on button1 | .button1(<str>, <str>) |
|
| notification action when clicking on button2 | .button2(<str>, <str>) |
|
| notification action when clicking on button3 | .button3(<str>, <str>) |
|
| notification action when tapping on it | .tap(<str>) |
|
| notification action when deleting it | .delete(<str>) |
|
| notification image to show | .image(<path>) |
|
| makes notification unremovable, need .id | .pin() |
|
.share() |
share a file specified as argument | |
| provide a file to share | .file(<path>) |
|
| which action to perform on the file (edit/send/view) | .action(<enum>) |
|
| content-type to use (default: guessed from file extension) | .contentType(<str>) |
|
| share to the default receiver instead of showing a chooser | .default() |
|
| title to use for shared content (default: shared file name) | .title(<str>) |
|
.smsInbox() |
List received SMS messages | |
| show dates when messages were created | .date() |
|
| limit in sms list (default: 10) | .limit(<int>) |
|
| show phone numbers | .showNumbers() |
|
| offset in sms list (default: 0) | .offset(<int>) |
|
.smsSend() |
Send a SMS message to the specified recipient number(s) | |
| Recipient number(s), gotta be an Array | .numbers(<Array>) |
|
| The SMS text | .text(<str>) |
|
.telephonyCellInfo() |
Get information about all observed cell information from all radios on the device | |
.telephonyDeviceInfo() |
Get information about the telephony device | |
.ttsEngines() |
Get information about the available text-to-speech (TTS) engines | |
.ttsSpeak() |
Speak text with a system text-to-speech (TTS) engine | |
| Text to speak, passed to the engine | .text(<str>) |
|
| TTS engine to use, see .ttsEngines() |
.engine(<id>) |
|
| language to use (may be unsupported by the engine) | .language(<enum>) |
|
| pitch to use in speech (1.0 is normal) | .pitch(<num>) |
|
| speech rate to use (1.0 is normal) | .rate(<num>) |
|
| audio stream to use (ALARM/MUSIC/NOTIFICATION/RING/SYSTEM/VOICE_CALL) | .stream(<enum>) |
Dependency
It uses has-termux-api to check if termux-api is installed.
Debug
Set the env DEBUG: DEBUG=termux
Author
Rocco Musolino (@roccomuso)
License
MIT