# 命令支持库

## 贡献者名单

| 署名    | 贡献   |
| ----- | ---- |
| Sealt | 10+  |
| 深蓝刻度  | 200+ |

## Pull request 须知

建议参照以下格式编写支持库文档

* 第1行`命令调用`声明`返回值`、`命令名称`、`支持库`、`Root`(无则不显示)
* 第2行声明`命令所实现的功能`
* 第3+行声明`参数名称`及`参数解释`
* 第n行声明`返回值类型(若存在)`，可使用表格展示。
* 可添加`使用范例`、`有助于读者理解的扩展知识`等自由发挥内容（建议缩进显示）
* 原则上允许同一命令多个解释块存在，一段时间后会进行合并
* 感谢您的协作，希望您为大众带来美观、专业的文档。

```
命令调用： 〈有返回值〉 执行javascript - FV 命令支持库->网页
输入网址，对网址执行js代码，可传入参数，返回值为代码内return返回内容。
参数<1>的名称为“默认 (当前结果)”，这里输入url网址。
参数<2>的名称为“JavaScript”，这里输入js代码，可以用document.getElementsByTagName来获取变html标签。
参数<3>的名称为“超时(毫秒)”，这里指定JavaScript运行时间，运行超过时间终止js执行，执行下个任务块。
参数<+>点击该任务块内的加号将增加一个传入参数。
    参数<4>的名称为“arg1”，这里输入传入参数。
    参数<...>的名称为“argN”，这里输入传入参数。
返回值，代码内输入“return "返回值内容";”。
任务块示例：
    参数<1>：https://m.baidu.com
    参数<2>：return document.getElementsByTagName('pre')[0].innerHTML;
    参数<3>：不用填，缺省。
    参数<4>：点击〉文字〉你好
    返回值：百度网页的源代码
```

## 参数说明

### 默认（当前结果）

```
调用上一个步骤的运行结果。
```

### 外部分享到任务的内容

```
接收外部应用分享到任务的内容，支持文字、图片等不同参数类型。
```

### 某个动作的运行结果

```
调用某个步骤的运行结果，即某个步骤的返回值，例如 01输出。
```

### 支持的参数类型

| 类型名称 | 类型结构(哈希表)                                                  |
| ---- | ---------------------------------------------------------- |
| 无    | {name:无,type:-2}                                           |
| 文本   | {name:文字,type:1}                                           |
| 数字   | {name:数字,type:2}                                           |
| 定位   | {members:\[经度,纬度],name:位置,type:4}                          |
| 时间   | {members:\[年,月,天,小时,分],name:时间,type:3}                     |
| 应用   | {members:\[包名,名称,版本,大小,应用 文件],name:应用,type:5}              |
| 文件   | {members:\[路径,名称,大小,是文件夹],name:文件,type:8}                  |
| 图片   | {members:\[路径,名称,大小,是文件夹],name:文件,type:8}                  |
| 音乐   | {members:\[路径,名称,大小,是文件夹],name:文件,type:8}                  |
| 视频   | {members:\[路径,名称,大小,是文件夹],name:文件,type:8}                  |
| 哈希表  | {name:哈希表,type:10}                                         |
| 列表   | {name:列表,type:11}                                          |
| 文件夹  | {members:\[路径,名称,大小,是文件夹],name:文件,type:8}                  |
| 布尔值  | {name:布尔值,type:22}                                         |
| 网页   | {name:网页,type:13}                                          |
| 广播   | {members:\[action,mime type,data,extras],name:系统广播,type:9} |
| 通知   | {members:\[通知包名,通知参数],name:notification,type:30}           |
| 屏幕坐标 | {name:屏幕位置,type:24}                                        |
| 控件ID | {members:\[文字,左边,右边,顶部,底部,控件ID],name:控件ID,type:31}         |
| 颜色   | {members:\[红,绿,蓝,值],name:颜色,type:32}                       |

## 写在前面话

### 关键词

| 关键词  | 意思                                            |
| ---- | --------------------------------------------- |
| 任务块  | 指一个最小的任务步骤。比如“动作”里的“应用切换器”任务块，会直接打开应用切换器。     |
| 触发任务 | 指自动运行的任务，点击右上角的“圆圈里的A”图标，变成蓝色就是触发任务，灰色就是开关任务。 |
| 开关任务 | 指只执行一次的任务。                                    |

### 技巧

* 要想看懂这个文档，首先需要实践，也就是新建一个任务，进入编辑界面，按照以下每条写法一步步操作，看千遍没有实践一遍来的明白。
* 你可以开个浏览器，一边看浏览器上的本文档，一遍打开FV操作编辑任务，大部分任务块都会有输出结果，你可以引用，然后用消息对话框输出结果查看会输出什么，也可以用流程控制来判断是与否、或与非、加减乘除等等。
* 记住上面的参数类型，可以用获取变量的子变量来获取members里的值，比如\[路径]。
* 可以点击任务编辑界面右上角三个点中的启用日志来记录运行日志，用来调试，可以在/sdcard/fooViewSave/log/看到对应任务的日志文件；调试完最好关了，防止生成大量日志文件。
* 本文档可能有滞后性或错误，请指出以完善文档，当前文档对应fv版本1.4.6.1。

  **动作**

### 最近应用列表

```
命令调用： 〈无返回值〉 最近应用列表 - FV 命令支持库->动作
打开最近应用列表，相当于三大金钢键中的“□”键。
```

### 通知区

```
命令调用： 〈无返回值〉 通知区 - FV 命令支持库->动作
打开通知栏，相当于屏幕顶端下滑后打开的通知栏。
```

### 显示当前通知

```
命令调用： 〈无返回值〉 显示当前通知 - FV 命令支持库->动作
打开通知栏最后一条通知的跳转链接，比如通知栏有条QQ消息通知，运行此任务块后会打开QQ，相当于直接点击通知栏中的QQ消息。
```

### 返回

```
命令调用： 〈无返回值〉 返回 - FV 命令支持库->动作
返回键，相当于三大金钢键中的“▽”键。
```

### 主页

```
命令调用： 〈无返回值〉 主页 - FV 命令支持库->动作
在FV窗口打开时候是先关闭窗口，如果FV窗口没焦点，就是系统HOME一样了。
```

### 应用切换器

```
命令调用： 〈无返回值〉 最近应用列表 - FV 命令支持库->动作
执行应用切换器，相当于长按fv悬浮球打开的应用切换器(默认手势设置)。
```

### 打开/最小化主窗口

```
命令调用： 〈无返回值〉 打开/最小化主窗口 - FV 命令支持库->动作
打开fv主窗口，相当于上滑fv悬浮球打开的fv主窗口(默认手势设置)；如果已经打开fv主窗口，执行此任务块将会最小化fv主窗口。
```

### 锁屏

```
命令调用： 〈无返回值〉 锁屏 - FV 命令支持库->动作
执行锁屏，相当于系统黑屏后锁屏手机。
```

### 粘贴

```
命令调用： 〈无返回值〉 粘贴 - FV 命令支持库->动作
执行粘贴，把fv剪切板中第一条粘贴到当前屏幕中的输入框里，多个输入框会出现红框选择。
```

### 打开/关闭剪贴板

```
命令调用： 〈无返回值〉 打开/关闭剪切板 - FV 命令支持库->动作
打开fv剪切板。
```

### 打开/关闭便签

```
命令调用： 〈无返回值〉 打开/关闭便签 - FV 命令支持库->动作
打开fv便签
```

### 隐藏/显示悬浮球

```
命令调用： 〈无返回值〉 隐藏/显示悬浮球 - FV 命令支持库->动作
执行此任务块会把屏幕中的fv悬浮球隐藏起来；如果已隐藏，执行此任务块会显示出来fv悬浮球；相当于通知栏磁贴中的fv悬浮球功能。
```

### 打开/关闭手电筒

```
命令调用： 〈无返回值〉 打开/关闭手电筒 - FV 命令支持库->动作
打开或者关闭手电筒。
```

### 打开快速设置

```
命令调用： 〈无返回值〉 打开快速设置 - FV 命令支持库->动作
打开快速设置页，相当于屏幕顶端下滑出现的各种快速设置，比如数据的开关、wifi开关之类的。
```

### 打开音量设置

```
命令调用： 〈无返回值〉 打开音量设置 - FV 命令支持库->动作
打开音量面板
闹铃、音乐、铃声、语音电话、通知，五种音量控制面板。
```

### 长按电源键

```
命令调用： 〈无返回值〉 长按电源键 - FV 命令支持库->动作
相当于三大金钢键中的长按“关机”键。
```

### 分屏

```
命令调用： 〈无返回值〉 分屏 - FV 命令支持库->动作
相当于三大金钢键中的长按“□”键。
```

### 全屏截图

```
命令调用： 〈有返回值〉 全屏截图 - FV 命令支持库->动作
使用fv截图整个屏幕。
返回值：生成的临时文件路径，任务结束自动删除。
```

### 长截图

```
命令调用： 〈有返回值〉 长截图 - FV 命令支持库->动作
使用fv长截图对屏幕进行长截图，需要手动点击。
返回值：生成的临时文件路径，任务结束自动删除。
```

### 录屏

```
命令调用： 〈有返回值〉 录屏 - FV 命令支持库->动作
使用fv录屏，需要手动点击。
返回值：生成的临时文件路径，任务结束自动删除。
```

### 区域录屏

```
命令调用： 〈有返回值〉 区域录屏 - FV 命令支持库->动作
使用fv区域录屏，需要手动点击。
返回值：生成的临时文件路径，任务结束自动删除。
```

### 位置

```
命令调用： 〈无返回值〉 位置 - FV 命令支持库->动作
执行后该任务块后，可以手动点击fv悬浮球位置，相当于长按fv悬浮球后出现的一个竖排图标中的第二个图标。
```

### 微信扫一扫

```
命令调用： 〈无返回值〉 微信扫一扫 - FV 命令支持库->动作
打开微信扫一扫。
```

### 支付宝扫一扫

```
命令调用： 〈无返回值〉 支付宝扫一扫 - FV 命令支持库->动作
打开支付宝扫一扫。
```

### 支付宝付款码

```
命令调用： 〈无返回值〉 录屏 - FV 命令支持库->动作
打开支付宝付款码。
```

### 停止所有自定义任务

```
命令调用： 〈无返回值〉 停止所有自定义任务 - FV 命令支持库->动作
停止所有自定义任务，开关型任务、触发型任务都会关闭掉。
```

## 应用

### 打开应用

```
命令调用： 〈无返回值〉 打开应用 - FV 命令支持库->应用
打开某个app应用。
参数<1>的名称为“应用”，这里选择应用或者传入包名。
参数<+>点击该任务块内的加号将增加一个传入参数。
    参数<Activity>的名称为“Activity”，这里写入app活动页Activity。
    参数<Uri>的名称为“Uri”，这里写入资源标志位连接。
        Uri    意义 
        content://contacts/people/1  显示id为1的联系人信息    
        content://contacts/people/1  将id为1的联系人电话号码显示在拨号界面中    
        tel:123  显示电话为123的联系人信息    
        http://www.google.com  在浏览器中浏览该网站    
        file://sdcard/mymusic.mp3  播放MP3    
        geo:39.2456,116.3523  显示地图
    参数<Action>的名称为“Action”，这里写入指定Action的名称，
        常见的Activity Action Intent常量  
            常量名称  意义  
            ACTION_MAIN  应用程序入口  
            ACTION_VIEW  显示数据给用户  
            ACTION_ATTACH_DATA  指明附加信息给其他地方的一些数据  
            ACTION_EDIT  显示可编辑的数据    
            ACTION_PICK  选择数据    
            ACTION_CHOOSER  显示一个Activity选择器    
            ACTION_GET_CONTENT  获得内容    
            ACTION_DIAL  显示打电话面板    
            ACITON_CALL  直接打电话    
            ACTION_SEND  直接发短信    
            ACTION_SENDTO  选择发短信    
            ACTION_ANSWER  应答电话    
            ACTION_INSERT  插入数据    
            ACTION_DELETE  删除数据    
            ACTION_RUN  运行数据    
            ACTION_SYNC  同步数据    
            ACTION_PICK_ACTIVITY  选择Activity    
            ACTION_SEARCH  搜索    
            ACTION_WEB_SEARCH  Web搜索    
            ACTION_FACTORY_TEST  工厂测试入口点       
        常见的BroadcastIntent Action常量  BroadcastIntent   
            Action字符串常量  描述    
            ACTION_TIME_TICK  系统时间每过一分钟发出的广播    
            ACTION_TIME_CHANGED  系统时间通过设置发生了变化    
            ACTION_TIMEZONE_CHANGED  时区改变    
            ACTION_BOOT_COMPLETED  系统启动完毕    
            ACTION_PACKAGE_ADDED  新的应用程序apk包安装完毕    
            ACTION_PACKAGE_CHANGED  现有应用程序apk包改变    
            ACTION_PACKAGE_REMOVED  现有应用程序apk包被删除    
            ACTION_UID_REMOVED  用户id被删除       
        Intent的Action和Uri属性匹配    
            Action属性  Uri属性  说明    
            ACTION_VIEW  content://contacts/people/1  显示id为1的联系人信息    
            ACTION_DIAL  content://contacts/people/1  将id为1的联系人电话号码显示在拨号界面中    
            ACITON_VIEW  tel:123  显示电话为123的联系人信息    
            ACTION_VIEW  http://www.google.com  在浏览器中浏览该网站    
            ACTION_VIEW  file://sdcard/mymusic.mp3  播放MP3    
            ACTION_VIEW  geo:39.2456,116.3523  显示地图  
        常见的Category常量  
            Category字符串常量  描述  
            CATEGORY_BROWSABLE  目标Activity能通过在网页浏览器中点击链接而激活（比如，点击浏览器中的图片链接）    
            CATEGORY_GADGET  表示目标Activity可以被内嵌到其他Activity当中    
            CATEGORY_HOME  目标Activity是HOME Activity，即手机开机启动后显示的Activity，或按下HOME键后显示的Activity    
            CATEGORY_LAUNCHER  表示目标Activity是应用程序中最优先被执行的Activity    
            CATEGORY_PREFERENCE  表示目标Activity是一个偏爱设置的Activity  
        常见的Extra常量  
            Extra键值字符串常量  描述  
            EXTRA_BCC  装有邮件密送地址的字符串数组    
            EXTRA_CC  装有邮件抄送地址的字符串数组    
            EXTRA_EMAIL  装有邮件发送地址的字符串数组    
            EXTRA_INTENT  使用ACTION_PICK_ACTIVITY动作时装有Intent选项的键    
            EXTRA_KEY_EVENT  触发该Intent的案件的KeyEvent对象    
            EXTRA_PHONE_NUMBER  使用拨打电话相关的Action时，电话号码字符串的键，类型为String    
            EXTRA_SHORTCUT_ICON  使用ACTION_CREATE_SHORTCUT在HomeActivity创建快捷方式时，对快捷方式的描述信息。  
                其中ICON和ICON_RESOURCE描述的是快捷方式的图标，类型分别为Bitmap和ShortcutIconResource。INTENT描述的是快捷方式相对应的Intent对象。NAME描述的是快捷方式的名字。    
                    EXTRA_SHORTCUT_ICON_RESOURCE  EXTRA_SHORTCUT_INTENT  EXTRA_SHORTCUT_NAME  EXTRA_SUBJECT  描述信息主题的键    
            EXTRA_TEXT  使用ACTION_SEND动作时，用来描述要发送的文本信息，类型为CharSequence    
            EXTRA_TITLE  使用ACTION_CHOOSER动作时，描述对话框标题的键，类型为CharSequence    
            EXTRA_UID  使用ACTION_UID_REMOVED动作时，描述删除的用户id的键，类型为int      
    参数<MimeType>的名称为“MimeType”，传入资源的媒体类型，如text/HTML。
    参数<Extra>的名称为“Extra”，额外的数据集，哈希表。
    参数<启用锁屏悬浮球>的名称为“启用锁屏悬浮球”，输入“真”或“假”，也就是true与false，默认为假(false)；如果设为真，锁屏为无密码锁屏时，fv会自动打开应用，并把锁屏界面关闭；如果设为真，是有密码锁屏时，fv也会打开应用，但是应用会在锁屏界面下层，只有输入密码解锁后才能看见；如果不理解前面的话，可以试着理解下后头这句话“只要设为真并且不是密码或者图案锁屏，都可以点亮屏幕后直接打开应用”。
任务块示例：
    示例一：
        参数<Uri>：https://m.baidu.com
        其他参数缺省。
    示例二：
        参数<Uri>：tel:10086
        其他参数缺省。
```

### 桌面快捷方式

```
命令调用： 〈无返回值〉 桌面快捷方式 - FV 命令支持库->应用
执行某个桌面快捷方式。
```

### 备份应用

```
命令调用： 〈无返回值〉 备份应用 - FV 命令支持库->应用
创建该指定应用的apk副本，保存在/sdcard/Backups/app路径内。
```

### 卸载应用

```
命令调用： 〈无返回值〉 卸载应用 - FV 命令支持库->应用
卸载指定应用。
```

### 安装应用

```
命令调用： 〈无返回值〉 安装应用 - FV 命令支持库->应用
安装指定应用。
```

### 获取应用属性

```
命令调用： 〈无返回值〉 获取应用属性 - FV 命令支持库->应用
打开指定应用的应用详情页面。
参数<1>的名称为“输入”，点击参数选择app应用。
```

### 获取当前应用

```
命令调用： 〈有返回值〉 获取当前应用 - FV 命令支持库->应用
返回当前应用包名。
```

### 获取当前应用页面

```
命令调用： 〈有返回值〉 获取当前应用页面 - FV 命令支持库->应用
返回当前应用Activity活动页名称。
```

### 强制停止应用

```
命令调用： 〈无返回值〉 强制停止应用 - FV 命令支持库->应用
停止指定app应用。
```

## 文字

### 获取文字

```
命令调用： 〈有返回值〉 获取文本 - FV 命令支持库->文本
参数<1>名称为“默认 (当前结果)”，可改成改成其他文本，也可以引用其他任务块的返回值，如果引入返回值是非文本类型，会转换成文本输出。
返回值：相当于所有非文本类型转换成文本类型输出值。
    各种类型输入 返回值
    文本类型  文本类型
    文件类型  文件内容以文本输出
    网页类型  输出网页标题
```

### 替换文字

```
命令调用： 〈有返回值〉 替换文字 - FV 命令支持库->文本
输入字符串文本，对字符串文本替换，输出被替换后的字符串文本。
参数<1>的名称为“默认 (当前结果)”，这里输入文本。
参数<2>的名称为“目标”，这里输入替换规则，可以输入正则表达式。
参数<3>的名称为“替换”，这里输入要替换成什么。
返回值：替换后的文本。
任务块示例：
    参数<1>：abcdefg
    参数<2>：de
    参数<3>：的
    返回值：abc的fg
任务块示例：
    参数<1>：abc123ggg
    参数<2>：\d+
    参数<3>：def
    返回值：abcdefggg
```

### 连接文字

```
命令调用： 〈有返回值〉 连接文字 - FV 命令支持库->文字
把所有文字连接起来。
参数<1>的名称为“默认 (当前结果)”，这里输入文本。
参数<2>的名称为“文字”这里输入文字。
参数<+>点击该任务块内的加号将增加一个传入参数。
    参数<3>的名称为“文字”，这里输入输入文字。
    参数<...>的名称为“argN”，这里输入文字。
返回值：参数<1>+参数<2>+……+参数<N>
任务块示例：
    参数<1>：你好，
    参数<2>：fooview！
    参数<3>：功能强大，
    参数<4>：值得拥有。
    返回值：你好，fooview！功能强大，值得拥有。
```

### 识别图片

```
命令调用： 〈有返回值〉 识别图片 - FV 命令支持库->文字
对图片文件进行OCR识别。
参数<1>的名称为“默认 (当前结果)”，这里输入文件路径。
返回值：OCR结果。
任务块示例：
    参数<1>：/sdcard/abc.jpg
    返回值：快乐
```

### 识别语音

```
命令调用： 〈有返回值〉 识别语音 - FV 命令支持库->文字
对语音进行识别，语音转文本。
返回值：文本类型。
```

### 语音播报

```
命令调用： 〈无返回值〉  - FV 命令支持库->文字
输入文字，用语音朗读出来。
参数<1>的名称为“默认 (当前结果)”，这里输入文本。
```

### 翻译文字

```
命令调用： 〈有返回值〉 翻译文字 - FV 命令支持库->文字
对输入文本转换成其他语言，比如英文转简体中文，然后打开网页显示翻译结果。
参数<1>的名称为“默认 (当前结果)”，这里输入要翻译的文字。
参数<2>的名称为“翻译引擎”，这里选择一个翻译引擎。
返回值为网页对象。
注意：该任务块添加时会同时添加显示网页任务块，两个任务块请不要分开。
    显示网页参数<1>请不要更改参数。
    显示网页参数<2>选择是否用悬浮窗还是fv窗口。
如果要不显示网页获得翻译结果，推荐找个翻译api直接静默翻译，而不是使用此任务块。
```

### 获取剪贴板内容

```
命令调用： 〈有返回值〉 获得剪切板内容 - FV 命令支持库->文字
获取fv剪切板最新的一条内容。
返回值：文本类型。
```

### 删除剪贴板

```
命令调用： 〈无返回值〉 删除剪切板 - FV 命令支持库->文字
删除fv的剪切板最新一条内容。
```

### 分割文字

```
命令调用： 〈有返回值〉 分割文字 - FV 命令支持库->文字
对文字进行分割。
参数<1>的名称为“默认 (当前结果)”，这里输入文本。
参数<2>的名称为“分隔符”，这里输入分隔符。
返回值：列表类型。
任务块示例：
    参数<1>：abcde123ddtt33kkk
    参数<2>：d
    返回值：[abc,e123,,tt33kkk]
    返回值元素个数：4个
```

### 获取子字符串

```
命令调用： 〈有返回值〉 获取子字符串 - FV 命令支持库->文字
获取字符串中指定位置的一段文字。
参数<1>的名称为“默认 (当前结果)”，这里输入文本。
参数<2>的名称为“位置序号”，这里输入位置，数字类型。
参数<3>的名称为“长度”，这里输入从位置序号起取多少个字符。
返回值：取到的字符串。
任务块示例：
    参数<1>：abcdefghijklomn
    参数<2>：6
    参数<3>：2
    返回值：gh
```

### 复制到剪贴板

```
命令调用： 〈无返回值〉 复制到剪切板 - FV 命令支持库->文字
复制文本到剪切板。
参数<1>的名称为“默认 (当前结果)”，这里输入文字。
```

### 文字长度

```
命令调用： 〈有返回值〉 文字长度 - FV 命令支持库->文字
对文字长度统计，返回文字的长度。
参数<1>的名称为“默认 (当前结果)”，这里输入文字。
返回值：文字长度。
任务块示例：
    参数<1>：abcdef
    返回值：6
```

### 二维码

```
命令调用： 〈无返回值〉 二维码 - FV 命令支持库->文字
输入文字生成二维码，弹出分享框，选择分享到哪里，比如分享到QQ群。
参数<1>的名称为“默认 (当前结果)”，这里输入文本。
```

## 图片

### 获取图片颜色

```
命令调用： 〈有返回值〉 获取图片颜色 - FV 命令支持库->图片
传入图片，获取指定位置的颜色。
```

## 文件

### 获取文件

```
命令调用： 〈有返回值〉 获取文件 - FV 命令支持库->文件
对选择的文件返回路径、名称、大小、是不是文件夹、文件对象。
参数<1>的名称为“选择文件”，这里选择文件、选择文件夹、引用其他任务块输入的文件路径。
返回值：路径、名称、大小、是不是文件夹、文件对象(直接点确定)。
任务块示例：
    参数<1>：/sdcard/abc.txt
    返回值：
        选择返回类型    返回值    意义
        路径    /sdcard/abc.txt    文件路径
        名称    abc.txt    文件名
        大小    0    文件大小，单位b
        是文件夹    false    是否为文件夹，是文件夹返回true(真)，不是返回false(假)
        取消    null    返回类型为“空”，非文本字符串“null”。
        确定    文件对象    返回文件对象（如文件文本内容），也可以说文件句柄；注意：不能传入js里，因为js传入时会进行类型转换。
```

### 打开文件

```
命令调用： 〈有返回值〉 打开文件 - FV 命令支持库->文件
对选择的文件用指定app打开。
参数<1>的名称为“选择文件”，这里选择文件、引用其他任务块输入的文件路径。
参数<2>的名称为“选择应用”，这里选择指定用来打开文件的app应用。
返回值：路径、名称、大小、是不是文件夹、文件对象(直接点确定)。
任务块示例：
    参数<1>：/sdcard/abc.txt
    返回值：
        选择返回类型    返回值    意义
        路径    /sdcard/abc.txt    文件路径
        名称    abc.txt    文件名
        大小    0    文件大小，单位b
        是文件夹    false    是否为文件夹，是文件夹返回true(真)，不是返回false(假)
        取消    null    返回类型为“空”，非文本字符串“null”。
        确定    文件对象    返回文件对象，也可以说文件句柄；注意：不能传入js里，因为js传入时会进行类型转换。
不建议用此任务块获取返回值，可以用获取文件获得返回值。
```

### 删除文件

```
命令调用： 〈无返回值〉 删除文件 - FV 命令支持库->文件
对选定文件执行删除操作
参数<1>的名称为“选择输入”，这里可以选择文件、选择文件夹、输入文件路径中一种。
任务块示例：
    参数<1>：/sdcard/abc.jpg
```

### 复制到文件

```
命令调用： 〈有返回值〉 复制到文件 - FV 命令支持库->文件
对选择的文件执行复制操作到指定文件夹。
参数<1>的名称为“选择文件”，这里选择文件、选择文件夹、引用其他任务块输入的文件路径。
参数<2>的名称为“选择文件夹”，这里选择文件夹，也可以引入其他任务块输入的文件夹路径。
参数<+>点击该任务块内的加号将增加一个传入参数。
    参数<3>的名称为“否”，如果文件夹里有与参数1相同文件名的是否覆盖，不覆盖(否)将会弹出是否覆盖选择框。
返回值：路径、名称、大小、是不是文件夹、文件对象(直接点确定)。
任务块示例：
    参数<1>：/sdcard/abc.txt
    返回值：
        选择返回类型    返回值    意义
        路径    /sdcard/abc.txt    文件路径
        名称    abc.txt    文件名
        大小    0    文件大小，单位b
        是文件夹    false    是否为文件夹，是文件夹返回true(真)，不是返回false(假)
        取消    null    返回类型为“空”，非文本字符串“null”。
        确定    文件对象    返回文件对象，也可以说文件句柄；注意：不能传入js里，因为js传入时会进行类型转换。
```

### 移动到文件

```
命令调用： 〈有返回值〉 移动到文件 - FV 命令支持库->文件
对选择的文件执行移动操作到指定文件夹。
参数<1>的名称为“选择文件”，这里选择文件、选择文件夹、引用其他任务块输入的文件路径。
参数<2>的名称为“选择文件夹”，这里选择文件夹，也可以引入其他任务块输入的文件夹路径。
参数<+>点击该任务块内的加号将增加一个传入参数。
    参数<3>的名称为“否”，如果文件夹里有与参数1相同文件名的是否覆盖，不覆盖(否)将会弹出是否覆盖选择框。
返回值：路径、名称、大小、是不是文件夹、文件对象(直接点确定)。
任务块示例：
    参数<1>：/sdcard/abc.txt
    返回值：
        选择返回类型    返回值    意义
        路径    /sdcard/abc.txt    文件路径
        名称    abc.txt    文件名
        大小    0    文件大小，单位b
        是文件夹    false    是否为文件夹，是文件夹返回true(真)，不是返回false(假)
        取消    null    返回类型为“空”，非文本字符串“null”。
        确定    文件对象    返回文件对象，也可以说文件句柄；注意：不能传入js里，因为js传入时会进行类型转换。
```

### 重命名文件

```
命令调用： 〈有返回值〉 重命名文件 - FV 命令支持库->文件
对选择的文件执行重命名操作。
参数<1>的名称为“选择文件”，这里选择文件、选择文件夹、引用其他任务块输入的文件路径。
参数<2>的名称为“选择名称”，这里输入文件名要改成的什么。
参数<+>点击该任务块内的加号将增加一个传入参数。
    参数<3>的名称为“否”，如果文件夹里有与参数1相同文件名的是否覆盖，不覆盖(否)将会弹出是否覆盖选择框。
返回值：路径、名称、大小、是不是文件夹、文件对象(直接点确定)。
任务块示例：
    参数<1>：/sdcard/abc.txt
    返回值：
        选择返回类型    返回值    意义
        路径    /sdcard/abc.txt    文件路径
        名称    abc.txt    文件名
        大小    0    文件大小，单位b
        是文件夹    false    是否为文件夹，是文件夹返回true(真)，不是返回false(假)
        取消    null    返回类型为“空”，非文本字符串“null”。
        确定    文件对象    返回文件对象，也可以说文件句柄；注意：不能传入js里，因为js传入时会进行类型转换。
```

### 新建文件夹

```
命令调用： 〈有返回值〉 新建文件夹 - FV 命令支持库->文件
在指定文件夹内新建一个文件夹。
参数<1>的名称为“选择文件夹”，这里选择文件、选择文件夹、引用其他任务块输入的文件路径。
参数<2>的名称为“文件夹名称”，这里输入新建文件夹的名称。
返回值：路径、名称、大小、是不是文件夹、文件对象(直接点确定)。
任务块示例：
    参数<1>：/sdcard/abc.txt
    返回值：
        选择返回类型    返回值    意义
        路径    /sdcard/abc.txt    文件路径
        名称    abc.txt    文件名
        大小    0    文件大小，单位b
        是文件夹    false    是否为文件夹，是文件夹返回true(真)，不是返回false(假)
        取消    null    返回类型为“空”，非文本字符串“null”。
        确定    文件对象    返回文件对象，也可以说文件句柄；注意：不能传入js里，因为js传入时会进行类型转换。
```

### 列出文件夹内容

```
命令调用： 〈有返回值〉 列出文件夹内容 - FV 命令支持库->文件
输出指定文件夹内所有文件及文件夹列表。
参数<1>的名称为“默认 (当前结果)”，这里输入文件路径。
返回值：列表类型，比如：“[文件对象,文件对象,文件对象，……]”。
任务块示例：
    参数<1>：/sdcard/abc.jpg
    返回值：[文件对象,文件对象]
    返回两个对象代表文件夹下只有两个文件，文件对象可以传入“获取文件”里获得更详细的信息。
```

### 压缩文件

```
命令调用： 〈有返回值〉 压缩文件 - FV 命令支持库->文件
对选择的文件执行压缩操作，在所在文件夹生成.zip文件，。
参数<1>的名称为“选择输入”，这里选择文件、选择文件夹、引用其他任务块输入的文件路径。
返回值：路径、名称、大小、是不是文件夹、文件对象(直接点确定)。
任务块示例：
    示例一：
        参数<1>：/sdcard/abc.txt
        返回值：
            选择返回类型    返回值    意义
            路径    /sdcard/abc.txt    文件路径
            名称    abc.txt    文件名
            大小    0    文件大小，单位b
            是文件夹    false    是否为文件夹，是文件夹返回true(真)，不是返回false(假)
            取消    null    返回类型为“空”，非文本字符串“null”。
            确定    文件对象    返回文件对象，也可以说文件句柄；注意：不能传入js里，因为js传入时会进行类型转换。
    示例二：
        参数<1>：/sdcard/
        返回值参考示例一。
    示例三：
        参数<1>：[文件对象,文件对象,文件对象,……]
        返回值参加示例一；文件对象，非文件路径。
```

### 解压文件

```
命令调用： 〈有返回值〉 解压文件 - FV 命令支持库->文件
对选择的压缩文件执行解压操作，解压到指定文件夹内。
参数<1>的名称为“选择文件”，这里选择文件、选择文件夹、引用其他任务块输入的文件路径。
参数<2>的名称为“选择文件夹”，这里选择文件夹，也可以引入其他任务块输入的文件夹路径。
返回值：路径、名称、大小、是不是文件夹、文件对象(直接点确定)。
任务块示例：
    参数<1>：/sdcard/abc.zip
    参数<2>：/sdcard/
    返回值：
        选择返回类型    返回值    意义
        路径    /sdcard/abc.txt    文件路径
        名称    abc.txt    文件名
        大小    0    文件大小，单位b
        是文件夹    false    是否为文件夹，是文件夹返回true(真)，不是返回false(假)
        取消    null    返回类型为“空”，非文本字符串“null”。
        确定    文件对象    返回文件对象，也可以说文件句柄；注意：不能传入js里，因为js传入时会进行类型转换。
```

### 写文件

```
命令调用： 〈有返回值〉 写文件 - FV 命令支持库->文件
对选择的文件执行写入内容操作，文件路径不存在会自动创建。
参数<1>的名称为“内容”，这里输入写入内容，或者网页对象，内容会被fv自动转换成UTF-8编码在写入文件里，网页对象将会以源代码形式保存。
参数<2>的名称为“文件”，这里选择文件，也可以引入其他任务块输入的文件路径。
返回值：路径、名称、大小、是不是文件夹、文件对象(直接点确定)。
任务块示例：
    参数<1>：今天天气真好。
    参数<2>：/sdcard/abc.txt
    返回值：
        选择返回类型    返回值    意义
        路径    /sdcard/abc.txt    文件路径
        名称    abc.txt    文件名
        大小    0    文件大小，单位b
        是文件夹    false    是否为文件夹，是文件夹返回true(真)，不是返回false(假)
        取消    null    返回类型为“空”，非文本字符串“null”。
        确定    文件对象    返回文件对象，也可以说文件句柄；注意：不能传入js里，因为js传入时会进行类型转换。
```

### 读文件文字

```
命令调用： 〈有返回值〉 读文件文字 - FV 命令支持库->文件
读取文件内容。
参数<1>的名称为“选择文件”，这里输入文件路径。
参数<2>的名称为“UTF-8”，以什么编码读取文件。
返回值：文件内容。
任务块示例：
    参数<1>：/sdcard/abc.txt
    返回值：今天天气真好。
```

### 下载

```
命令调用： 〈有返回值〉 下载 - FV 命令支持库->文件
对选择的文件执行复制操作到指定文件夹。
参数<1>的名称为“URL”，这里输入要下载的网址。
参数<2>的名称为“选择文件夹”，这里选择文件夹，也可以引入其他任务块输入的文件夹路径。
返回值：路径、名称、大小、是不是文件夹、文件对象(直接点确定)。
任务块示例：
    参数<1>：/sdcard/abc.txt
    返回值：
        选择返回类型    返回值    意义
        路径    /sdcard/abc.txt    文件路径
        名称    abc.txt    文件名
        大小    0    文件大小，单位b
        是文件夹    false    是否为文件夹，是文件夹返回true(真)，不是返回false(假)
        取消    null    返回类型为“空”，非文本字符串“null”。
        确定    文件对象    返回文件对象，也可以说文件句柄；注意：不能传入js里，因为js传入时会进行类型转换。
```

## 网页

### 显示网页

```
命令调用： 〈无返回值〉 显示网页 - FV 命令支持库->网页
输入url网址，或者网页对象，用fv打开网页并显示。
参数<1>的名称为“默认 (当前结果)”，这里输入url网址，如https://baidu.com。
参数<2>的名称为“悬浮窗”，这里有两个可选值，布尔值“真”与“假”，也就是true与false；真代表以悬浮窗打开网页，假代表以窗口打开网页，默认为假(false)。
```

### 获取网页

```
命令调用： 〈有返回值〉 获取网页 - FV 命令支持库->网页
输入url网址，或者网页对象，返回网页对象。
参数<1>的名称为“默认 (当前结果)”，这里输入url网址，如https://baidu.com。
返回值为网页对象，如果传入消息对话框会把网页对象转为文本，转文本只会输出网页标题，要想获得网页内容建议用“网页>js”。
注：不推荐使用，建议以“网页>http请求”或者“网页>执行js”代替。
```

### 页面内查找

```
命令调用： 〈有返回值〉 页面内查找 - FV 命令支持库->网页
输入url网址或者网页对象，返回查找到的内容。
参数<1>的名称为“默认 (当前结果)”，这里输入url网址，如https://baidu.com。
参数<2>的名称为“样式选择器”，这里输入html标签或者css样式name、id，用于定位查找的内容位置。
参数<3>的名称为“属性”，这里输入属性名称，可以为：innerText、innerHTML等，具体百度“js innerText”。
返回值为对应返回值。
示例：
    参数<1>：weather.com
    参数<2>：div.styles-KJsoQumW__mobile-cc-main-container__Bd2gb
    参数<3>：innerText
    返回值：当地天气的文本内容。
```

### 搜索

```
命令调用： 〈无返回值〉 搜索 - FV 命令支持库->网页
输入内容，用指定搜索引擎搜索指定关键词，并打开网页。
参数<1>的名称为“默认 (当前结果)”，这里输入需要查找的关键词。
参数<2>的名称为“搜索引擎”，这里指定一个搜索引擎。
返回值为网页对象，网页对象请参看获取网页。
注意：一般添加该任务块时会自动添加“显示网页任务块”。
```

### 执行JavaScript

```
命令调用： 〈有返回值〉 执行javascript - FV 命令支持库->网页
输入网址，对网址执行js代码，可传入参数，返回值为代码内return返回内容。
参数<1>的名称为“默认 (当前结果)”，这里输入url网址，或者网页对象。
参数<2>的名称为“JavaScript”，这里输入js代码，可以用document.getElementsByTagName来获取变html标签。
参数<3>的名称为“超时(毫秒)”，这里指定JavaScript运行时间，运行超过时间终止js执行，执行下个任务块。
参数<+>点击该任务块内的加号将增加一个传入参数。
    参数<4>的名称为“arg1”，这里输入传入参数。
    参数<...>的名称为“argN”，这里输入传入参数。
返回值，代码内输入“return "返回值内容";”。
任务块示例(如何让js执行结果输出)：
    参数<1>：https://m.baidu.com
    参数<2>：return document.getElementsByTagName('pre')[0].innerHTML;
    参数<3>：不用填，缺省。
    参数<4>：点击〉文字〉你好
    返回值：百度网页的源代码
任务块示例(如何让js输出12+12的结果)：
    参数<1>：https://m.baidu.com
    参数<2>：return 12+12;
    参数<3>：不用填，缺省。
    参数<4>：点击〉文字〉你好
    返回值：24
注意：参数<2>里可以执行所有javascript语句，这里只是示例，如果你要外部调用js执行的结果需要return来返回输出结果，然后你才能用其他任务块引用该结果。
注意：该任务块相当于你在浏览器访问网页，会下载网页内所有资源并解析成DOM树(html)，参数<1>所加载的网页会包含网页内的视频与图片，也就是你访问的网址时也会下载该网页上的视频与图片到缓存里，如果不想下载视频与图片只想获取源网页，请使用http请求。
```

### HTTP请求

```
命令调用： 〈有返回值〉 HTTP请求 - FV 命令支持库->网页
选择提交方式，输入url网址，返回网页的内容。
参数<1>的名称为“GET”，这里为提交方式，有两种，GET和POST。
参数<2>的名称为“URL”，如https://baidu.com。
参数<3>的名称为“HTTP Headers”，网页报头,是个哈希表。
参数<4>的名称为“请求参数”，这里输入数据，键值对应，哈希表。
```

## 流程控制

### 如果

```
命令调用： 〈无返回值〉 如果 - FV 命令支持库->流程控制
比较等式两边，如果条件成立时执行条件下的动作，不成立则执行否则分支下的动作。可判断是否包含正则表达式，是否等于空对象等。
参数<1>的名称为“条件”。
```

### 等待

```
命令调用： 〈无返回值〉 等待 - FV 命令支持库->流程控制
等待条件满足时候执行动作。如果超时条件仍未满足，执行超时分支下的动作。如果不设置超时则一直等待。
参数<1>的名称为“条件”，点击参数即可添加条件。
参数<2>的名称为“超时时间”，输入时间（秒）。
```

### 重复

```
命令调用： 〈有返回值〉 重复 - FV 命令支持库->流程控制
输入数字、列表、哈希表，重复指定数字次数，或者重复指定列表、哈希表元素个数。
参数<1>的名称为“次”，这里输入数字、列表、哈希表种的一种。
返回值为任务块内第一行，以“默认结果”获得返回值。
任务块示例：
    示例一：
        参数<1>数字类型：6;
        返回值：依次为0、1、2、3、4、5
    示例二：
        参数<1>列表类型：["tttt","gggg","uuuu"];
        返回值：依次为tttt、gggg、uuuu
如何为任务块内添加其他任务块？拖动任务块到任务块就可以。
```

### 分支

```
命令调用： 〈无返回值〉 分支 - FV 命令支持库->流程控制
输入数据，如果值与数据一样会执行对应操作，相当于js中的switch case，具体可以百度下。
```

### 跳出循环

```
命令调用： 〈无返回值〉 跳出循环 - FV 命令支持库->流程控制
跳出当前循环，一般与“重复”，“如果”搭配使用，相当于编程里的break。
```

### 终止

```
命令调用： 〈无返回值〉 终止 - FV 命令支持库->流程控制
终止当前任务，或者终止某个任务。
不点<+>时是终止当前任务，如果是触发条件类型任务，只会停止本次任务进程，下次触发可以再次运行任务。
参数<+>点击该任务块内的加号将增加一个传入参数。
    参数<1>的名称为“自定义任务”，这里输入任务名，如果该名称是触发条件类型任务，会关闭该触发条件任务，下次触发也不会运行。
```

### 间隔时间

```
命令调用： 〈无返回值〉 间隔时间 - FV 命令支持库->流程控制
延迟多少毫秒后继续执行。
参数<1>的名称为“时间(毫秒)”，输入毫秒，1000毫秒=1秒。
```

### 创建变量

```
命令调用： 〈有返回值〉 创建变量 - FV 命令支持库->流程控制
创建个变量用来存储数据，本次任务有效。
参数<+>点击该任务块内的加号将增加一个传入参数。
    参数<1>的名称为“初始值”，这里输入传入初始值，也就是默认值。
    参数<2>的名称为“名称”，这里输入名称，随便起一个，比如“abc”。
返回值，返回当前初始值内容。
```

### 设置变量

```
命令调用： 〈有返回值〉 设置变量 - FV 命令支持库->流程控制
设置已存在的变量的值。
参数<1>的名称为“默认 (当前结果)”，输入要改变的值
参数<2>的名称为“设置变量”，选择当前任务内的某个“创建变量”。
参数<+>点击该任务块内的加号将增加一个传入参数。
    参数<3>的名称为“子变量”，这里输入元素名称。
返回值，返回当前“创建变量”的值。
任务块示例：
    参数<1>：你好
    参数<2>：选择某个创建变量(列表类型[abc,def,qqq,uuu])
    参数<3>：[2]
    返回值：[abc,def,你好,uuu]
```

### 获取变量

```
命令调用： 〈有返回值〉 获取变量 - FV 命令支持库->流程控制
获取已存在的变量的值，或者其子变量的值。
参数<1>的名称为“变量”，选择某个创建变量。
参数<+>点击该任务块内的加号将增加一个传入参数。
    参数<2>的名称为“子变量”，输入子变量表达式。可通过下标来访问列表中的元素，如[0], 通过下标或者.来访问哈希表元素如[key]或.key等。
返回值，返回当前选择的变量的值；还可以填“创建变量”的名称，比如：[创建变量的名称]、[abc]、[i]，以此可以实现读取指定下标的值。
任务块示例：
    参数<1>：选择某个变量(列表类型[abc,def,qqq,uuu])
    参数<2>：[0]
    返回值：adc
任务块示例：
    参数<1>：选择某个变量(哈希表类型{members:[路径,名称,大小,是文件夹],name:文件,type:8})
    参数<2>：.type
    返回值：8
任务块示例：
    01创建变量：
        <参数1>：列表类型：["abc","def","ggg","rrr"]
        <参数2>：缺省。
    02创建变量：
        <参数1>：数字类型：2
        <参数2>：kkk
    03获取变量：
        参数<1>：引用01
        参数<2>：[kkk]
        返回值：ggg
任务块示例：
    01创建变量：
        <参数1>：哈希表类型：{"abc":22,"def":33,"ggg":55,"rrr":66}
        <参数2>：缺省。
    02创建变量：
        <参数1>：文本类型：ggg
        <参数2>：kkk
    03获取变量：
        参数<1>：引用01
        参数<2>：[kkk]
        返回值：55
```

### 变量类型

```
命令调用： 〈有返回值〉 变量类型 - FV 命令支持库->流程控制
返回变量的类型。
参数<1>的名称为“变量”，输入要改变的值
返回值，返回类型。
任务块示例：
    参数<1>：选择某个创建变量(列表类型[abc,def,qqq,uuu])
    返回值：返回变量的类型，类似{name:列表,type:11}，具体有哪些类型请参考任务文档开头的类型列表。
```

### 计算器

```
命令调用： 〈有返回值〉 计算器 - FV 命令支持库->流程控制
对传入参数做数学运算。
参数<1>的名称为“计算器”，这里输入算式。
参数<+>点击该任务块内的加号将增加一个传入参数。
    参数<2>的名称为“参数 - (a)”，这里输入传入数字。
    参数<3>的名称为“参数 - (b)”，这里输入传入数字。
    参数<...>的名称为“参数 - (N)”，这里输入传入参数。
返回值，算式运算结果。
任务块示例：
    参数<1>：a+b
    参数<2>：5
    参数<3>：6
    返回值：11
```

### 子任务

```
命令调用： 〈有返回值〉 子任务 - FV 命令支持库->流程控制
调用子任务，运行完子任务在执行主任务。
参数<1>的名称为“子任务”，这里输入某个任务的任务名。
参数<+>点击该任务块内的加号将增加一个传入参数。
    参数<2>的名称为“参数”，这里输入传入到子任务中的参数。
    参数<...>的名称为“参数”，这里输入传入到子任务中的参数。
返回值，子任务内最后处理的数据的值。
任务块示例：
    参数<1>：加法运算器(子任务参考下方子任务)
    参数<2>：2
    参数<3>：3
    返回值：5
    子任务：加法运算器
        任务块01：获取变量
            参数<1>：外部分享到任务的内容
            参数<2>：[0]
            返回值：2
        任务块02：获取变量
            参数<1>：外部分享到任务的内容
            参数<2>：[1]
            返回值：3
        任务块03：计算器
            参数<1>：a+b
            参数<2>：某个动作的运行结果(任务块01)
            参数<3>：某个动作的运行结果(任务块02)
            返回值：5
    因为任务块03返回值是5，所以这个子任务就返回5。
```

### 执行JavaScript

```
命令调用： 〈有返回值〉 执行javascript - FV 命令支持库->流程控制
输入js代码，可传入参数，返回值为代码内return返回内容。
参数<1>的名称为“JavaScript”，这里输入js代码。
参数<2>的名称为“超时(毫秒)”，这里指定JavaScript运行时间，运行超过时间终止js执行，执行下个任务块。
参数<+>点击该任务块内的加号将增加一个传入参数。
    参数<3>的名称为“arg1”，这里输入传入参数。
    参数<...>的名称为“argN”，这里输入传入参数。
返回值，代码内输入“return "返回值内容";”。
任务块示例(如何让js执行结果输出)：
    参数<1>：return arg1+"，fooview！";
    参数<2>：不用填，缺省。
    参数<3>：点击〉文字〉你好
    返回值：你好，fooview！
任务块示例(如何让js输出12+12的结果)：
    参数<1>：var a=12;var b=12;return a+b;
    参数<2>：不用填，缺省。
    参数<3>：不用填，缺省。
    返回值：24
注意：参数<1>里可以执行所有javascript语句，这里只是示例，如果你要外部调用js执行的结果需要return来返回输出结果，然后你才能用其他任务块引用该结果。
```

### 注释

```
命令调用： 〈无返回值〉 如果 - FV 命令支持库->流程控制
写个注释方便理顺思路。
参数<1>的名称为“注释”，输入注释。
```

## 系统

### 获取系统广播

```
命令调用： 〈有返回值〉 获取系统广播 - FV 命令支持库->系统
获得系统或app发出的广播内容。
参数<1>的名称为“默认 (当前结果)”，这里不用输入任何东西，保持默认。
返回值，代码内输入“return "返回值内容";”。
任务块示例：
    参数<1>：默认，缺省。
    返回值：一个通知。
注意：执行此任务块有个前提条件，必须前头跟“触发条件任务块”，否则返回是空。
```

### 发送系统广播

```
命令调用： 〈无返回值〉 发送系统广播 - FV 命令支持库->系统
发出一条广播。
参数<1>的名称为“Action”，这里输入广播的action，可以理解为广播的标题，就像发帖子要写标题，请参考“打开应用”的“action”。
参数<+>点击该任务块内的加号将增加一个传入参数。
    参数<2>的名称为“Uri”，这里输入资源标志位，请参考“打开应用”的“Uri”。
    参数<3>的名称为“MimeType”，这里输入数据的类型，请参考“打开应用”的“MimeType”。
    参数<4>的名称为“Extra”，这里输入Extra，请参考“打开应用”的“Extra”。
    参数<5>的名称为“应用”，这里指定接收此广播的app，也就是收件人是哪个app。
    参数<6>的名称为“Activity”，这里输入活动页名称，也就是Activity。
任务块示例1：
    参数<1>：android.intent.action.AIRPLANE_MODE。
    执行后将给系统发送一条广播，这条“android.intent.action.AIRPLANE_MODE”是系统内置广播，代表着“飞行模式已改变”。
任务块示例2:
    参数<1>：葡萄
    参数<4>(哈希表，键值对应)：{键:值,文本:哈喽}
    执行后将发送一条标题是“葡萄”的广播，这时可以新建一个任务，用那个任务来接收此广播，接收方法参考“获取系统广播”。
```

### 分享

```
命令调用： 〈无返回值〉 分享 - FV 命令支持库->系统
把输入的文字或文件分享到指定app。
参数<1>的名称为“默认 (当前结果)”，这里输入文本，或者传入文件。
参数<2>的名称为“选择应用”，这里输入要分享到哪个app，默认为空，如果执行时为空的话就弹出分享选择列表。
任务块示例：
    参数<1>：选择一个文件
    参数<2>：缺省。
```

### 获取当前时间

```
命令调用： 〈有返回值〉 获取当前时间 - FV 命令支持库->系统
获取当前时间。
返回值可以选择“年、月、天、小时、分”或者直接选择确定。
任务块示例：
    返回值(年月日时分)(数字)：2020
    返回值(直接点确定)：{members:[年,月,天,小时,分],name:时间,type:3}
```

### 获取当前位置

```
命令调用： 〈有返回值〉 获取当前位置 - FV 命令支持库->系统
获取当前位置，通过硬件的卫星定位。
返回值可以选择“经度、纬度”或者直接选择确定。
任务块示例：
    返回值(经度、纬度)(数字)：36.6666
    返回值(直接点确定)：{members:[经度,纬度],name:位置,type:4}
```

### 执行Shell命令

```
命令调用： 〈有返回值〉 执行shell命令 - FV 命令支持库->系统
执行shell命令。
参数<1>的名称为“Shell命令”，这里输入shell命令。
参数<2>的名称为“RootShell”，这里选择是否以root权限执行此shell命令。
参数<3>的名称为“超时(毫秒)”，这里输入超时时间。
参数<+>点击该任务块内的加号将增加一个传入参数。
    参数<4>的名称为“arg1”，这里将传入shell一个参数
    参数<N>的名称为“argN”，这里默认否，这里将传入shell一个参数。
任务块示例1：
    参数<1>：echo arg1
    参数<4>：你好
    返回值：你好
任务块示例2:
    参数<1>：echo arg1+arg2
    参数<4>(arg1)：你好
    参数<5>(arg2)：世界
    返回值：你好+世界
注意：从任务块示例2就可以看出，传入参数argN是直接替换shell的argN，argN在shell不是变量。
```

### 发送通知

```
命令调用： 〈无返回值〉 发送通知 - FV 命令支持库->系统
发出一条通知。
参数<1>的名称为“标题”，这里输入通知的标题。
参数<2>的名称为“内容”，这里输入通知的内容。
参数<+>点击该任务块内的加号将增加一个传入参数。
    参数<3>的名称为“点击运行任务”，这里选择在点击弹出的通知后执行什么任务。
    参数<4>的名称为“进行中”，这里默认否，如果选择真就是通知栏中的通知不能手动划掉。
任务块示例1：
    参数<1>：我是标题
    参数<2>：我是内容
    执行后将给系统发送一条通知。
任务块示例2:
    参数<1>：我是通知标题
    参数<2>：我是一条内容
    参数<3>(选择一条你已有的任务)：ping网络延迟
    执行后将发送一条通知，你点击这条通知就会运行“ping网络延迟”。
```

### 清理通知

```
命令调用： 〈无返回值〉 清理通知 - FV 命令支持库->系统
清理下滑通知栏的所有通知。
```

### 振动

```
命令调用： 〈无返回值〉 振动 - FV 命令支持库->系统
开始震动。
参数<1>的名称为“时间 (毫秒)”，这里输入数字，一秒=1000毫秒
任务块示例：
    参数<1>：2000
```

### 获取当前输入法

```
命令调用： 〈有返回值〉 获取当前输入法 - FV 命令支持库->系统
返回当前正在使用的输入法名称。
返回值为一个文本。
任务块示例：
    返回值：讯飞输入法 
注意：获取输入法传入js是输入法名称，用fv if判断时是包名。
```

### 切换输入法

```
命令调用： 〈无返回值〉 切换输入法 - FV 命令支持库->系统
设置系统输入法为指定输入法。
参数<1>的名称为“切换输入法”，这里输入输入法包名或者手动选择一个输入法。
任务块示例：
    参数<1>(包名)：com.iflytek.inputmethod
    参数<1>(手动选择)：点击弹出的输入法列表选择一个。
```

### 设为桌面

```
命令调用： 〈无返回值〉 设为桌面 - FV 命令支持库->系统
设置系统的桌面背景图。
参数<1>的名称为“默认 (当前结果)”，这里输入图片路径，或者手动选择一个图片。
任务块示例：
    参数<1>：/sdcard/abc.jpg
```

### 设置锁屏背景

```
命令调用： 〈无返回值〉 设置锁屏背景 - FV 命令支持库->系统
设置系统的锁屏背景图。
参数<1>的名称为“默认 (当前结果)”，这里输入图片路径，或者手动选择一个图片。
任务块示例：
    参数<1>：/sdcard/abc.jpg
```

### FV窗口状态

```
命令调用： 〈有返回值〉 FV窗口状态 - FV 命令支持库->系统
查询当前FV窗口状态，查询fv窗口是否打开。
返回值为“真”、“假”，也就是true与false。
```

### 悬浮球状态

```
命令调用： 〈有返回值〉 悬浮球状态 - FV 命令支持库->系统
查询悬浮球的状态。
返回值为：
    显示名称    值(数字类型)
    显示悬浮球    0
    隐藏悬浮球，显示线    1
    启动用功能但不显示悬浮球和线    2
    禁用功能    3
注意：如果你是用来判断的。比如用if来判断，应该以值来判断。如果你只是查询当前状态并显示，那就可以直接显示名称。
```

### 设置悬浮球

```
命令调用： 〈无返回值〉 设置锁屏背景 - FV 命令支持库->系统
设置系统的锁屏背景图。
参数<1>的名称为“0”，这里选择选项中的一个。
任务块示例：
    参数<1>：显示悬浮球
    运行后fv悬浮球会设置为显示状态。
```

## 屏幕动作

### 录制动作

```
命令调用： 〈无返回值〉 录制动作 - FV 命令支持库->屏幕动作
该功能可录制屏幕操作的动作，并在任务执行时模拟录制的动作，以实现预期功能。
操作一次手机屏幕称之为步骤，把为了实现一个功能的所有步骤叫做动作。例如预实现打开微信扫一扫功能，其中“点菜单”、“点扫一扫”分别都可称为一个步骤，把他们合起来就称为一个“打开微信扫一扫”的动作。
参数<1>的名称为“动作”，点击即可进入动作录制窗口，见解释图。
    自动识别步骤：操作屏幕后自动展示在工具条内，点击该步骤可修改“名称”。该步骤实质为点击按钮命令。
    输入文本：某输入框发生文字变化后，软件识别后显示在工具条内，识别为单次文本变化（请勿打字，直接粘贴）。执行时自动输入相同文本。
    手动录入步骤：实质为手势命令，可通过加号选用，或直接点击选择窗口。窗口变红后点击或滑动屏幕录制。
    间隔时间：等待设定时间后执行下一个步骤，单位为毫秒。
    打开/关闭快速设置：指展开/关闭通知栏的快捷开关。
```

![](http://ww1.sinaimg.cn/large/6b1dd0a7ly1gd1k1dp1j6j20tr0hd3zt.jpg)

### 点击按钮

```
命令调用： 〈有返回值〉 点击按钮 - FV 命令支持库->屏幕动作
点击当前屏幕中的带指定文字的按钮。
参数<1>的名称为“文字”，这里输入要点击屏幕中的带某个字或词的按钮。
参数<+>点击该任务块内的加号将增加一个传入参数。
    参数<2>的名称为“屏幕 位置”，这里指定屏幕中按钮的位置，你可以不填<1>，直接指定位置；也可以指定文字也指定位置。
    参数<3>的名称为“超时(毫秒)”，这里输入等待时间(默认值0)，比如屏幕中一直没有符合条件的按钮出现就等待，直到有符合条件的按钮，如果到了超时时间就不会继续等待，会跳过此任务块。如果超时以前匹配到就点击按钮并结束超时。
    参数<4>的名称为“控件ID”，填写控件ID。
任务块示例：
    参数<1>：你好
    参数<2>：缺省，默认不填
    参数<3>：3000
执行后如果屏幕有“你好”，就会点击该按钮，否则就等待输入框出现，直到3000毫秒后终止执行。
需要注意的是：
    一、文字是模糊匹配：比如屏幕中某个按钮是“世你好界”，这时“你好”会被匹配到，就会点击这个“世你好界”按钮。
    二、点击按钮是多个匹配将从上到下、从左到右依次点击：比如屏幕中有两个按钮“世界你好”、“你好fv”，那么匹配“你好”时，这两个都会匹配到，将依次点击，如果页面点击后变化将终止点击否则继续点击下一个，如果你要指定屏幕位置就只会点击屏幕指定位置的按钮。
    三、屏幕位置指定后，就是包含这个坐标的按钮都会点击，如果文字也指定，那就会缩小这个点击的范围，也就是说文字与屏幕位置是两个条件，可以指定一个也可以指定两个。
    四、点击按钮执行前fv会隐藏一下所有悬浮窗，相当于fv默认手势的上滑隐藏悬浮窗动作。
```

### 获取控件ID

```
命令调用： 〈有返回值〉 获取控件ID - FV 命令支持库->屏幕动作
获取屏幕上所有控件ID，如果指定屏幕坐标只返回所有包含那个坐标点的控件ID。屏幕坐标可以传入文本“(123,456)”，也可以传入屏幕坐标类型变量。
```

### 输入文字

```
命令调用： 〈无返回值〉 输入文字 - FV 命令支持库->屏幕动作
向当前屏幕中的输入框输入文字。
参数<1>的名称为“文字”，这里输入要往屏幕中的输入框输入的文字。
参数<+>点击该任务块内的加号将增加一个传入参数。
    参数<2>的名称为“位置序号”，这里输入屏幕上输入框的编号，顺序是屏幕从上往下、从左往右，比如屏幕里一共有9个输入框，你要往第一个框输入文字，这里就填“1”，依次类推。
    参数<3>的名称为“超时(毫秒)”，这里输入等待时间(默认值0)，比如屏幕中一直没有输入框就等待，直到有输入框输入文字，如果到了超时时间就不会继续等待，会跳过此任务块。
    参数<4>的名称为“点击输入法结束按钮”，输入完文字是否点击输入法结束按钮，默认否。(选择是后，其实是点击输入法换行符)。
任务块示例：
    参数<1>：你好
    参数<2>：1
    参数<3>：3000
执行后如果有输入框，输入框会出现“你好”，否则就等待输入框出现，直到3000毫秒后终止执行。
```

### 手势

```
命令调用： 〈无返回值〉 手势 - FV 命令支持库->屏幕动作
录制一种手势动作，指定从屏幕某个位置滑动到某个位置，也可以实现点击按钮效果。
注意：需要安卓7及以上系统，打开“高级辅助权限”才能执行成功，否则会提示null执行失败。
```

### 屏幕点亮

```
命令调用： 〈无返回值〉 屏幕点亮 - FV 命令支持库->屏幕动作
打开系统屏幕，亮屏。
```

### 屏幕关闭

```
命令调用： 〈无返回值〉 屏幕关闭 - FV 命令支持库->屏幕动作
关闭系统屏幕，息屏。
```

### 获取屏幕文字

```
命令调用： 〈有返回值〉 获取屏幕文字 - FV 命令支持库->屏幕动作
获取当前屏幕文字。
返回值：
    列表类型，[字符串,字符串,字符串,……]
    例子：[中国移动 (72,12 - 214,59),……]
    返回文字、文字所在坐标。
注意：获取屏幕文字时fv会隐藏所有悬浮窗，相当于fv默认手势的上滑隐藏悬浮窗动作。
```

### 微信分享文字

```
命令调用： 〈无返回值〉 微信分享文字 - FV 命令支持库->屏幕动作
分享文字到微信。
参数<1>的名称为“默认 (当前结果)”，这里输入要分享的文字。
参数<2>的名称为“发送给朋友(com.tencent.mm.ui.tools.ShareImgUI)”，这里不要更改。
注意：该任务块添加时会同时添加录制动作任务块，两个任务块请不要分开。
    录制动作参数<1>请不要更改参数。
    录制动作参数<2>请不要更改参数。
```

### 显示等待对话框

```
命令调用： 〈无返回值〉 显示等待对话框 - FV 命令支持库->屏幕动作
显示一个全屏白色框，直到“关闭等待对话框”执行在关闭，否则会一直显示在屏幕上，点击屏幕会穿透等待对话框。
注意：执行此操作一定要与“关闭等待对话框”配套执行，否则屏幕上你只能看见一片白。
```

### 关闭等待对话框

```
命令调用： 〈无返回值〉 关闭等待对话框 - FV 命令支持库->屏幕动作
在“显示等待对话框”后关闭显示。
注意：与“显示等待对话框”配套执行。
```

## 设置

### 静音

```
命令调用： 〈无返回值〉 静音 - FV 命令支持库->设置
开启静音模式。
```

### 关闭静音

```
命令调用： 〈无返回值〉 关闭静音 - FV 命令支持库->设置
关闭静音模式。
```

### 设置音量

```
命令调用： 〈无返回值〉 设置音量 - FV 命令支持库->设置
获取系统五大音量当前值。
参数<1>的名称为“选择音量类型”，选择一种音量：闹铃、音乐、铃声、语音电话、通知。
参数<2>的名称为“音量”，输入0-15数值，数字越高音量越大。
```

### 获取音量

```
命令调用： 〈有返回值〉 获取音量 - FV 命令支持库->设置
获取系统五大音量当前值。
参数<1>的名称为“选择音量类型”，选择一种音量：闹铃、音乐、铃声、语音电话、通知。
返回值：
    0-15：返回选择的音量类型的音量值，数字类型。
```

### 自动旋转

```
命令调用： 〈无返回值〉 自动旋转 - FV 命令支持库->设置
打开系统屏幕的自动旋转。
```

### 关闭自动旋转

```
命令调用： 〈无返回值〉 关闭自动旋转 - FV 命令支持库->设置
关闭系统屏幕的自动旋转。
```

### 打开WIFI

```
命令调用： 〈无返回值〉 打开WIFI - FV 命令支持库->设置
打开WIFI。
```

### 关闭WIFI

```
命令调用： 〈无返回值〉 关闭WIFI - FV 命令支持库->设置
关闭WIFI。
```

### 获取WIFI状态

```
命令调用： 〈有返回值〉 获取WIFI状态 - FV 命令支持库->设置
获取WIFI状态。
返回值：
    0：关闭
    1：开启
```

### 获取WIFI名称

```
命令调用： 〈有返回值〉 获取WIFI名称 - FV 命令支持库->设置
获取WIFI名称。
返回值：
    <unknown ssid>：没有连接wifi。
    TP-LINK_XXXX：返回wifi名称。
```

### 打开蓝牙

```
命令调用： 〈无返回值〉 打开蓝牙 - FV 命令支持库->设置
开启蓝牙。
```

### 关闭蓝牙

```
命令调用： 〈无返回值〉 关闭蓝牙 - FV 命令支持库->设置
关闭蓝牙。
```

### 获取蓝牙状态

```
命令调用： 〈有返回值〉 获取蓝牙状态 - FV 命令支持库->设置
获取蓝牙是否开启
返回值：
    0：关闭
    1：开启
```

### 打开位置服务

```
命令调用： 〈无返回值〉 打开位置服务 - FV 命令支持库->设置
开启GPS(卫星定位)服务。
```

### 关闭位置服务

```
命令调用： 〈无返回值〉 关闭位置服务 - FV 命令支持库->设置
关闭GPS(卫星定位)服务。
```

### 获取GPS状态

```
命令调用： 〈有返回值〉 获取GPS状态 - FV 命令支持库->设置
获取GPS(卫星定位)是否开启
返回值：
    0：关闭
    1：开启
```

## 音乐

### 播放音乐

```
命令调用： 〈无返回值〉 播放音乐 - FV 命令支持库->音乐
播放指定音乐文件。
参数<1>的名称为“音乐”，点击参数即选择音乐文件。
参数<2>的名称为“应用”，点击参数即选择用来播放的音乐APP。
```

### 音乐 - 上一个

```
命令调用： 〈无返回值〉 音乐-上一个 - FV 命令支持库->音乐
播放上一曲，对当前使用的音乐APP起效。
```

### 音乐-下一个

```
命令调用： 〈无返回值〉 音乐-下一个 - FV 命令支持库->音乐
播放下一曲，对当前使用的音乐APP起效。
```

### 暂停/继续

```
命令调用： 〈无返回值〉 暂停/继续 - FV 命令支持库->音乐
播放/暂停，对当前使用的音乐APP起效。
```

### 停止

```
命令调用： 〈无返回值〉 停止 - FV 命令支持库->音乐
停止播放当前音乐，即退出当前播放音乐的应用。
```

## 状态

### 获取屏幕状态

```
命令调用： 〈有返回值〉 获取屏幕状态 - FV 命令支持库->状态
检测屏幕处于亮屏状态还是息屏状态。
返回值：
    0：息屏
    1：亮屏
```

### 获取锁屏状态

```
命令调用： 〈有返回值〉 获取锁屏状态 - FV 命令支持库->状态
检测手机是否已锁屏。
返回值：
    0：未锁屏
    1：已锁屏
```

### 获取飞行模式状态

```
命令调用： 〈有返回值〉 获取飞行模式状态 - FV 命令支持库->状态
检测手机是否已开启飞行模式。
返回值：
    0：未开启
    1：已开启
```

### 获取电池状态

```
命令调用： 〈有返回值〉 获取电池状态 - FV 命令支持库->状态
返回手机电量数值。
```

### 获取NFC状态

```
命令调用： 〈有返回值〉 获取NFC状态 - FV 命令支持库->状态
检测手机NFC功能是否打开。
返回值：
    0：否
    1：是
```

## 显示

### 消息对话框

```
命令调用： 〈无返回值〉 消息对话框 - FV 命令支持库->显示
显示消息对话框。
参数<1>的名称为“默认 (当前结果)”，点击参数即输入提示消息。
```

### 提示语

```
命令调用： 〈无返回值〉 提示语 - FV 命令支持库->显示
在屏幕下半区域显示提示语。
```

### 列表对话框

```
命令调用： 〈有返回值〉 列表对话框 - FV 命令支持库->显示
显示列表对话框。
参数<1>的名称为“内容”，输入列表类型或者哈希表类型。
输入列表类型会显示列表中每个元素，依次显示。
输入哈希表类型会显示哈希表中的键名称，显示顺序为乱序。
返回值为列表中的某个元素，或者哈希表中的元素(键:值)。
```

### 确定对话框

```
命令调用： 〈有返回值〉 确定对话框 - FV 命令支持库->显示
显示确定对话框。
参数<1>的名称为“消息”，点击参数即输入提示消息。
返回值为“真”与“假”，也就是true与false。
```

### 输入数据对话框

```
命令调用： 〈有返回值〉 输入数据对话框 - FV 命令支持库->显示
可以指定输入类型，返回值为选定类型的输入值。
参数<1>的名称为“数据类型”，点击参数即可添加数据类型，
    数据类型  返回值示例
    文字  文本
    数字  123456
    位置  [36.1234560,120.1234560]
    时间  [年,月,天,小时,分]
    应用  [包名,名称,版本,大小,应用 文件]
    文件  [路径,名称,大小,是文件夹]
    图片  [路径,名称,大小,是文件夹]
    音乐  [路径,名称,大小,是文件夹]
    视频  [路径,名称,大小,是文件夹]
    哈希表  {键:值,aaaa:2222,bbbb:1111}
参数<+>点击会加入输入提示。
    参数<2>的名称为“输入提示”，
返回值如果没选定，点的取消，会返回“空”，也就是null空对象类型。
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://sealt.gitbook.io/fooview/zi-ding-yi-ren-wu-wen-dang/ming-ling-zhi-chi-ku.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
