跳到主要内容

Termux:API用法详解

· 17 分钟阅读 · - · - ·

之前的文章写了如何安装和配置Termux?。但Termux如何想要调用安卓系统的能力,还需要执行下面两步操作。

如何安装Termux:API

1、 安装一个“Termux:API”的apk包。 2、安装完“Termux:API”以后打开termux主程序,执行下面的命令再安装一个“Termux:API”的命令工具。

apt install termux-api

Termux:API用法

下面列出的Termux:API的所有api的用法、入参和出参。需要使用哪个api可以在目录中快速跳转。

获取设备电池信息

命令:termux-battery-status

出参

{
"health": "GOOD", // 电池健康状态
"percentage": 94, // 当前电量百分比
"plugged": "UNPLUGGED", // 是否已插入电源
"status": "DISCHARGING", // 是否正在充电
"temperature": 33.0, // 电池温度
"current": 252000 //
}

设置屏幕亮度。

命令

termux-brightness brightness

权限:android.permission.WRITE_SETTINGS

入参

参数说明默认值可选
brightness亮度-0-255

获取通话记录列表

命令

termux-call-log -l limit -o offset

权限:android.permission.READ_CALL_LOG

入参

参数说明默认值可选
-l limit每次获取条数10
-o offset从第几条开始获取0

出参

[
{
"name":"名称",
"phone_number":"号码",
"date":"通话时间",
"duration":"通话时长"
}
...
]

获取相机信息

命令:termux-camera-info

出参

[
{
"id": "0",
"facing": "back",
"jpeg_output_sizes": [
{
"width": 4080,
"height": 3072
},
...
],
"focal_lengths": [
7.590000152587891
],
"auto_exposure_modes": [
"CONTROL_AE_MODE_OFF",
"CONTROL_AE_MODE_ON",
"CONTROL_AE_MODE_ON_AUTO_FLASH",
"CONTROL_AE_MODE_ON_ALWAYS_FLASH"
],
"physical_size": {
"width": 11.423999786376953,
"height": 8.60159969329834
},
"capabilities": [
"backward_compatible",
"constrained_high_speed_video",
"raw",
"yuv_reprocessing",
"private_reprocessing",
"read_sensor_settings",
"manual_sensor",
"burst_capture",
"manual_post_processing"
]
},
...
]

调用摄像头拍照

命令

termux-camera-photo -c camera-id filename

权限:android.permission.CAMERA

入参

参数说明默认值可选
-c camera-idtermux-camera-info输出的id0
filename文件保存的路径-

获取粘贴板数据

命令:termux-clipboard-get

权限:读取粘贴板权限

出参:直接输出粘贴板内容

设置粘贴板数据

命令

termux-clipboard-set text

入参

参数说明默认值可选
text要复制到粘贴板的内容-

获取联系人列表

命令:termux-contact-list

权限:anroid.permission.READ_CONTACTS

出参

[
{
"name":"名称",
"nuumber":"号码"
}
...
]

显示弹窗

命令

termux-dialog confirm -t title -i hint
termux-dialog checkbox -t title -v ",,,"
termux-dialog counter -t title -r min,max,start
termux-dialog date -t title -d "dd-MM-yyyy k:m:s"
termux-dialog radio -t title -v ",,,"
termux-dialog sheet -t title -v ",,,"
termux-dialog spinner -t title -i hint
termux-dialog speech -t title -i hint
termux-dialog text -t title -i hint -m -n -p
termux-dialog time -t title

入参

参数说明默认值可选
-t title弹窗标题-
-i hint弹窗内容-
-v ",,,"以逗号分割的选项列表-
-r min,max,start时数弹窗的数值
min:最小值
max:最大值
start:初始值
-
-d "dd-MM-yyyy kⓂ️s"日期弹窗的输出格式-
-m输入框弹窗多行输入,不能和-n共用-
-n输入框弹窗输入数字,不能和-m共用-
-p输入框弹窗输入密码-

出参

{
"code":-1,
"text":"值",
"values":"格式化的值,不同类型的弹窗值不一样"
}

使用系统下载管理器下载资源。

命令

termux-download -d description -t title -p path url

权限:无

入参

参数说明默认值可选
-d description下载通知的描述-
-t title下载通知的标题-
-p path下载文件要保存的路径-
url要下载的url-

使用指纹传感器校验身份

命令:termux-fingerprint

出参

{
"errors":[],
"failed_attempts":0,
"auth_result":"AUTH_RESULT_SUCCESS"
}

查询红外发射器支持的载波频率。

命令:termux-infrared-frequencies

出参

[
{
"min": 30000,
"max": 30000
},
...
]

发送红外信号

命令

termux-infrared-transmit -f frequency

权限:无

入参

参数说明默认值可选
frequency以赫兹为单位的 IR 载波频率。-

延迟或定时运行Termux脚本。

命令:termux-job-scheduler

权限:无

入参

参数说明默认值可选
----

出参


获取当前位置。

命令

termux-location -p gps/network/passive -r once/last/updates

权限:无

入参

参数说明默认值可选
-p gps/network/passive获取位置的方式gps
-r once/last/updates获取时机
once:一次
last:上次
updates:更新
once

出参

{
"latitude": 33,
"longitude": 114,
"altitude": 102,
"accuracy": 90,
"vertical_accuracy": 961,
"bearing": 0.0,
"speed": 0.0,
"elapsedMs": 38,
"provider": "gps"
}

播放媒体文件

命令

termux-media-player info
termux-media-player play
termux-media-player play <file>
termux-media-player pause
termux-media-player stop

权限:无

入参

参数说明默认值可选
info查看当前播放信息--
play暂停后继续播放--
play {"<"}file{">"}播放指定文件--
pause暂停--
stop停止--

媒体扫描

命令

termux-media-scan -r 目录 -v

入参

参数说明默认值可选
-r 目录要扫描的目录-
-v详细扫描-

录音

命令

termux-microphone-record -d -f <file> -l <limit> -e <encoder> -b <bitrate> -r <rate> -c <count> -i -q

权限:android.permission.RECORD_AUDIO

入参

参数说明默认值可选
-dStart recording w/ defaults--
-f {"<"}file{">"}Start recording to specific file--
-l {"<"}limit{">"}录音时长限制,单位:秒,0表示不限制0-
-e {"<"}encoder{">"}指定录音格式 (aac, amr_wb, amr_nb)--
-b {"<"}bitrate{">"}指定录音比特率 (单位 kbps)--
-r {"<"}rate{">"}指定录音频率 (单位 Hz)--
-c {"<"}count{">"}指定录音声道数 (1, 2, ...)--
-i获取当前录音信息--
-q退出录音--

-i出参

{
"isRecording":true,
"outputFile":"录音文件"
}

发送通知

命令

termux-notification

权限:无

入参

参数说明默认值可选
--action action点击通知时执行的动作--
--alert-once通知被编辑时不要再次提醒--
--button1 text在通知的第一个按钮上显示的文本--
--button1-action action点击第一个按钮要执行的动作--
--button2 text在通知的第二个按钮上显示的文本--
--button2-action action点击第二个按钮要执行的动作--
--button3 text在通知的第三个按钮上显示的文本--
--button3-action action点击第三个按钮要执行的动作--
-c/--content content要在通知中显示的内容,优先级高于标准输入--
--group group通知分组--
-h/--help显示帮助信息--
--help-actions显示动作定义帮助信息--
-i/--id id通知id,同一id的通知两次发送时之前的将被替换--
--image-path path通知中要显示的图片绝对路径--
--led-color rrggbb呼吸灯颜色-
--led-off milliseconds呼吸灯呼吸时关闭时长800-
--led-on milliseconds呼吸灯呼吸时打开时长800-
--on-delete action通知被清理时执行的动作--
--ongoing发送持久化通知--
--priority prio通知优先级-high/low/max/min/default
--sound通知铃声--
-t/--title title通知标题--
--vibrate pattern通知振动,时长以逗号分割 ,500,800,500,900--
--type type通知类型-default/media
--media-next通知类型为media时,显示下一曲按钮--
--media-pause通知类型为media时,显示暂停按钮--
--media-play通知类型为media时,显示播放按钮--
--media-previous通知类型为media时,显示上一曲按钮--

移除通知

命令

termux-notification-remove id

入参

参数说明默认值可选
id要移除的通知id,使用termux-notification发送通知时定义的id-

获取传感器信息

命令

termux-sensor -h -a -l -s ",,," -d ms -n num

入参

参数说明默认值可选
-h显示帮助信息--
-a显示全部传感器信息和实时数据(警告:可能对电池有影响)--
-l显示可用的传感器列表--
-s ",,,"要监听的传感器,以逗号分割--
-d ms接收传感器数据之前延迟,单位:ms--
-n num接收传感器数据次数,最小值为1。
continuous:续续接收
continuous-
-c释放被占用的传感器--

-l出参

{
"sensors":[
"可用的传感器列表",
...
]
}

分享

命令

termux-share -a action -c content-type -d -t title file

入参

参数说明默认值可选
-a action分享内容要执行的动作类型viewedit/send/view
-c content-type分享的数据类型从文件后缀猜测,如果数据是从标准输入来的,默认为text/plain
-d如果选择一个则分享到默认的接收器而不显示接收器列表-
-t title分享的标题分享的文件名

获取短信列表

命令

termux-sms-list -d -l limit -n -o offset -t type

权限:android.permission.READ_CONTACTS

入参

参数说明默认值可选
-d显示创建短信的日期--
-l limit每页显示多少条数据10-
-n显示号码--
-o offset从第几个后开始获取0-
-t type要显示的短信类型inboxall

出参

[
{
"threadid":186,
"type":"inbox",
"read":true,
"number":"号码",
"received":"接收时间",
"body":"短信内容"
}
]

发送短信

命令

termux-sms-send -n ",,," text

权限:android.permission.SEND_SMS

入参

参数说明默认值可选
-n ",,,"要接收短信的号码,以逗号分割-
text要发送的短信内容-

选择文件

命令

termux-storage-get filename

入参

参数说明默认值可选
filename要写入的文件-

Call a telephony number.

命令

termux-telephony-call number

权限:andriod.permission.CALL_PHONE

入参

参数说明默认值可选
number要拨打的号码-

获取区域信息

命令:termux-telephony-cellinfo

权限:定位权限

出参

{
"type":"类型",
"registered":true,
"asu":40,
"dbm":-97,
"level":2,
"ci":1936181100,
"pci":120,
"tac":61292,
"mcc":460,
"mnc":1
}

获取通讯设备信息

命令:termux-telephony-deviceinfo

出参

{
"data_enabled": "true",
"data_activity": "none",
"data_state": "connected",
"device_id": null,
"device_software_version": null,
"phone_count": 2,
"phone_type": "gsm",
"network_operator": "46001",
"network_operator_name": "中国联通",
"network_country_iso": "cn",
"network_type": "lte",
"network_roaming": false,
"sim_country_iso": "cn",
"sim_operator": "46001",
"sim_operator_name": "中国联通",
"sim_serial_number": null,
"sim_subscriber_id": null,
"sim_state": "ready"
}

显示一个Toast

命令

termux-toast -h -b -c -g -s text

入参

参数说明默认值可选
-h显示帮助信息--
-b背景色gray
-c前景色white
-g位置middletop, middle, bottom
-s短时显示-
text要显示的内容-

打开/关闭手电筒

命令

termux-torch status

入参

参数说明默认值可选
status状态-on, off

获取语音引擎信息

命令:termux-tts-engines

出参

[
{
"name":"包名",
"label":"名称"
"default":true
},
...
]

朗读文本

命令

termux-tts-speak -e engine -l language -n region -v variant -r rate  -s stream text

入参

参数说明默认值可选
-e engine要使用的语音引擎-termux-tts-engines输出的引擎
-l language要朗读的语言--
-n region要朗读语言所在区域--
-v variant要朗读语言的变体--
-p pitch朗读的声调1.0-
-r rate朗读的语速1.0-
-s stream音频流NOTIFICATIONALARM, MUSIC, NOTIFICATION, RING, SYSTEM, VOICE_CALL
text要朗读的文本-

USB设备列表

命令

termux-usb -l -r -e command

依赖包

要正常使用该功能,需要安装libusbclang包,可使用apt install libusb clang安装

权限:USB权限

入参

参数说明默认值可选
-l列表所有可用的USB设备--
-r如果没有权限弹出权限请求弹窗--
-e command使用引用设备的文件描述符作为其参数执行指定的命令--

-l出参

[

]

振动

命令

termux-vibrate -d duration -f

权限:无

入参

参数说明默认值可选
-d duration振动时长1000
-f在静音模式下强制振动-

获取/设置音量

命令

termux-volume stream volume

入参

参数说明默认值可选
stream要改变的音量-alarm, music, notification, ring, system, call
volume音量--

不加参数出参

[
{
"stream": "call",
"volume": 11,
"max_volume": 11
},
{
"stream": "system",
"volume": 0,
"max_volume": 15
},
{
"stream": "ring",
"volume": 10,
"max_volume": 15
},
{
"stream": "music",
"volume": 50,
"max_volume": 150
},
{
"stream": "alarm",
"volume": 8,
"max_volume": 15
},
{
"stream": "notification",
"volume": 10,
"max_volume": 15
}
]

更改桌面壁纸

命令

termux-wallpaper -f file -u url -l

入参

参数说明默认值可选
-f file使用文件设置桌面壁纸--
-u url使用网络资源设置桌面壁纸--
-l设置锁屏壁纸--

获取当前WiFi连接信息

命令:termux-wifi-connectioninfo

出参

{
"bssid": "02:00:00:00:00:00",
"frequency_mhz": 5745,
"ip": "192.168.31.251",
"link_speed_mbps": 260,
"mac_address": "02:00:00:00:00:00",
"network_id": -1,
"rssi": -68,
"ssid": "<unknown ssid>",
"ssid_hidden": true,
"supplicant_state": "COMPLETED"
}

打开/关闭WiFi

命令

termux-wifi-enable status

权限:无

入参

参数说明默认值可选
status要更改的wifi状态-true, false

扫描可用WiFi

命令:termux-wifi-scaninfo

权限:定位权限

出参

[
{
"bssid": "68:8b:0f:f6:6f:96",
"frequency_mhz": 2412,
"rssi": -50,
"ssid": "CMCC-nJtm",
"timestamp": 584216631835,
"channel_bandwidth_mhz": "20"
},
...
]
该内容为何方原创,转载请注明本页地址
https://iamhefang.cn/soft/termux-api-detail