项目

一般

简介

Actions

# 版本6.3


## 导入JAR并初始化单件对象

* 1.导入ZtlManager包

```java

import ZtlApi.ZtlManager;

```

* 2.声明并实例化 ZtlManager 对象,注意,在实例化对象时需要传入参数 Context。

```java

ZtlManager.GetInstance().setContext(MainActivity.this);

ZtlManager.GetInstance().setContext(getApplicationContext());

```

* 3.开始调用其他API 比如

```java

ZtlManager.GetInstance().getDeviceVersion();//获取设备版本

```


* 1 [系统](#系统)

  * [获取jar版本](#获取jar版本)

  * [获取设备型号](#获取设备型号)

  * [获取系统版本](#获取系统版本)

  * [获取系统SDK版本](#获取系统SDK版本)

  * [获取设备唯一ID](#获取设备唯一ID)

  * [获取内部存储大小](#获取内部存储大小)

  * [获取剩余存储大小](#获取剩余存储大小)

  * [获取剩余运行内存](#获取剩余运行内存)

  * [获取内部SD卡路径](#获取内部SD卡路径)

  * [获取外部SD卡路径](#获取外部SD卡路径)

  * [获取插入U盘个数](#获取插入U盘个数)

  * [获取指定索引U盘路径](#获取指定索引U盘路径)

  * [获取U盘路径](#获取U盘路径)

  * [休眠](#休眠)

  * [唤醒](#唤醒)

  * [关机](#关机)

  * [重启](#重启)

  * [截取当前屏幕](#截取当前屏幕)

  * [设置系统桌面](#设置系统桌面)

  * [设置普通APP为系统桌面](#设置普通APP为系统桌面)

  * [获取设置的系统桌面包名](#获取设置的系统桌面包名)

  * [判断包名对应的APP是否存在](#判断包名对应的APP是否存在)

  * [恢复出厂设置](#恢复出厂设置)

  * [打开设置界面](#打开设置界面)

  * [打开WiFi界面](#打开WiFi界面)

  * [打开或关闭导航栏与状态栏](#打开或关闭导航栏与状态栏)

  * [获取当前导航栏状态](#获取当前导航栏状态)

  * [设置USB调试状态](#设置USB调试状态)

  * [获取USB调试状态](#获取USB调试状态)

  * [OTG功能开关](#OTG功能开关)

  * [获取OTG口连接状态](#获取OTG口连接状态)

  * [设置生成序列号](#设置生成序列号)

  * [获取生成的序列号](#获取生成的序列号)

  * [判断4G网络故障代码](#判断4G网络故障代码)

  * [判断系统是否支持看门狗功能](#判断系统是否支持看门狗功能)

  * [打开看门狗并喂狗](#打开看门狗并喂狗)

  * [关闭看门狗](#关闭看门狗)

  * [判断看门狗是否正在运行](#判断看门狗是否正在运行)

  * [读取看门狗的值](#读取看门狗的值)

  * [设置锁屏](#设置锁屏)

  * [锁屏](#锁屏)

  * [执行cmd命令并获取返回值](#执行cmd命令并获取返回值)

  * [执行命令行](#执行命令行)

  * [设置开机自启动](#设置开机自启动)

  * [获取设置的开机自启动APP的包名](#获取设置的开机自启动APP的包名)

  * [获取设置的开机自启动APP的类名](#获取设置的开机自启动APP的类名)

  * [启动另一个APP](#启动另一个APP)

  * [静默安装APK](#静默安装APK)

  * [无需root权限静默安装APK](#无需root权限静默安装APK)

  * [卸载APP](#卸载APP)

  * [静默安装APK并且重启系统](#静默安装APK并且重启系统)

  * [安装APP并启动安装的APP](#安装APP并启动安装的APP)

  * [守护进程](#守护进程)

  * [取消守护进程](#取消守护进程)

  * [保活某个服务](#保活某个服务)

  * [取消保活某个服务](#取消保活某个服务)

  * [硬件看门狗](#APP使用硬件看门狗)


* 2 [时间](#时间)

  * [获取系统日期](#获取系统日期)

  * [获取系统时间](#获取系统时间)

  * [立刻同步网络时间](#立刻同步网络时间)

  * [设置同步时间的间隔](#设置同步时间的间隔)

  * [设置系统日期与时间](#设置系统日期与时间)

  * [判断系统的时区是否为自动获取](#判断系统的时区是否为自动获取)

  * [设置系统时区开关](#设置系统时区开关)

  * [判断系统的时间是否自动获取](#判断系统的时间是否自动获取)

  * [设置系统的自动确定日期与时间开关](#设置系统的自动确定日期与时间开关)

  * [定时关机](#定时关机)

  * [定时开机](#定时开机)

  * [设置系统指定某天定时关机](#设置系统指定某天定时关机)

  * [设置系统指定某天定时开机](#设置系统指定某天定时开机)

  * [自定义周期定时关机](#自定义周期定时关机)

  * [自定义周期定时开机](#自定义周期定时开机)

  * [定时重启](#定时重启)

  * [设置系统指定某天定时重启](#设置系统指定某天定时重启)


* 3 [显示](#显示)

  * [获取屏幕分辨率](#获取屏幕分辨率)

  * [获取屏幕分辨率Y轴像素](#获取屏幕分辨率Y轴像素)

  * [获取屏幕分辨率X轴像素](#获取屏幕分辨率X轴像素)

  * [获取屏幕显示密度](#获取屏幕显示密度)

  * [设置屏幕显示密度](#设置屏幕显示密度)

  * [是否设置背光反向](#是否设置背光反向)

  * [获取背光是否已反向](#获取背光是否已反向)

  * [获取当前亮度](#获取当前亮度)

  * [获取最大亮度值](#获取最大亮度值)

  * [增大亮度值](#增大亮度值)

  * [降低亮度值](#降低亮度值)

  * [设置系统亮度](#设置系统亮度)

  * [设置屏幕方向](#设置屏幕方向)

  * [设置副屏方向](#设置副屏方向)

  * [设置多屏幕方向](#设置多屏幕方向)

  * [获取屏幕方向](#获取屏幕方向)

  * [设置触摸方向](#设置触摸方向)

  * [获取触摸方向](#获取触摸方向)

  * [获取支持的分辨率列表](#获取支持的分辨率列表)

  * [设置分辨率](#设置分辨率)

  * [设置桌面壁纸](#设置桌面壁纸)

  * [设置字体大小](#设置字体大小)

  * [获取固件所支持的屏幕个数](#获取固件所支持的屏幕个数)


* 4 [网络](#网络)

  * [获取MAC地址](#获取MAC地址)

  * [获取IPv4地址](#获取IPv4地址)

  * [获取当前连接的网络类型](#获取当前连接的网络类型)

  * [指定wifi掉线重连](#指定wifi掉线重连)

  * [指定wifi停止掉线重连](#指定wifi停止掉线重连)

  * [禁用或启用网络ADB](#禁用或启用网络ADB)

  * [打开热点](#打开热点)

  * [关闭热点](#关闭热点)

  * [获取指定网络的IPv4地址](#获取指定网络的IPv4地址)

  * [设置以太网配置信息](#设置以太网配置信息)

  * [设置以太网配置信息多网卡设置](#设置以太网配置信息多网卡设置)

  * [设置WIFI配置信息](#设置WIFI配置信息)

  * [设置WIFI热点](#设置WIFI热点)

  * [启用或禁用4G模块断线自动重连](#启用或禁用4G模块断线自动重连)

  * [获取4G模块IMEI信息](#获取4G模块IMEI信息)

  * [获取SIM卡TEL信息](#获取SIM卡TEL信息)

  * [获取SIM卡ICCID信息](#获取SIM卡ICCID信息)

  * [获取SIM卡IMSI信息](#获取SIM卡IMSI信息)

  * [获取SIM卡运营商信息](#获取SIM卡运营商信息)

  * [获取4G模块基带版本信息](#获取4G模块基带版本信息)

  * [设置APN](#设置APN)

  * [查询APN](#查询APN是否存在)


* 5 [文件](#文件)

  * [获取文件后缀名](#获取文件后缀名)

  * [判断文件是否存在](#判断文件是否存在)

  * [计算GPIO值](#计算GPIO值)

  * [设置GPIO输出值](#设置GPIO输出值)

  * [获取GPIO值](#获取GPIO值)

  * [设置GPIO方向](#设置GPIO方向)

  * [获取GPIO方向](#获取GPIO方向)

  * [打开器件存储器](#打开器件存储器)

  * [铁电存储器专用写接口](#铁电存储器专用写接口)

  * [铁电存储器专用读接口](#铁电存储器专用读接口)

  * [加密芯片专用写接口](#加密芯片专用写接口)

  * [加密芯片专用读接口](#加密芯片专用读接口)

  * [关闭器件存储器](#关闭器件存储器)

  * [禁止卸载app](#禁止卸载app)

  * [获取禁止卸载APP的包名](#获取禁止卸载APP的包名)

  * [获取ADC数值](#获取ADC数值)


* 6 [媒体](#媒体)

  * [获取系统最大音量](#获取系统最大音量)

  * [获取系统当前音量](#获取系统当前音量)

  * [增大音量](#增大音量)

  * [降低音量](#降低音量)

  * [设置媒体音量值](#设置媒体音量值)

  * [设置指定音量的音量值](#设置指定音量的音量值)

  * [获取指定音量的音量值](#获取指定音量的音量值)

  * [获取指定音量的最大音量值](#获取指定音量的最大音量值)

  * [设置相机方向](#设置相机方向)

  * [获取相机方向](#获取相机方向)

  * [判断相机是否镜像](#判断相机是否镜像)

  * [设置相机是否镜像](#设置相机是否镜像)


* 7 [其他](#其他)

  * [打开性能监控小程序](#打开性能监控小程序)

  * [获取CPU可用频率](#获取CPU可用频率)

  * [设置CPU频率](#设置CPU频率)


# 系统 

 ## 获取jar版本


 函数:public String getJARVersion()<br>

 描述:获取 jar 版本号<br>

 用途:当用户拿到的 jar 版本和厂家公布的 jar 不一致时,建议更新。<br>

 示例:

```java

 String JARVersion = ZtlManager.GetInstance().getJARVersion();//JARVersion为获取到的jar版本号

```


 ## 获取设备型号


 函数:public static String getDeviceVersion()<br>

 描述:获取 Android 设备型号。<br>

 用途:可以通过读取这个 api 适配不同的板子,写不同的功能代码。<br>

 示例:

```java

 String DeviceVersion = ZtlManager.GetInstance().getDeviceVersion();//DeviceVersion 为获取到的设备型号

```


 ## 获取系统版本


 函数:public static String getAndroidVersion()<br>

 描述:获取 Android 设备系统版本号<br>

 用途:可以通过读取这个 api 适配不同的操作系统版本,写不同的功能代码。<br>

 示例:

```java

 String AndroidVersion = ZtlManager.GetInstance().getAndroidVersion();//AndroidVersion 为获取到的设备型号

```


 ## 获取系统SDK版本


 函数:public int getSDKVersion()<br>

 描述:获取 Android 设备系统版本号<br>

 用途:可以通过读取这个 api 适配不同的操作系统,写不同的功能代码。<br>

 示例:

```java

 String getSDKVersion = ZtlManager.GetInstance().getSDKVersion();//getSDKVersion 为获取到的SDK版本号

```


 ## 获取设备唯一ID


 函数:public String getDeviceID()<br>

 描述:获取 Android 设备唯一序列号<br>

 示例:

```java

 String DeviceID = ZtlManager.GetInstance().getDeviceID();//DeviceID 为获取到的设备唯一ID

```


 ## 获取内部存储大小


 函数:public long getTotalInternalMemorySize()<br>

 描述:获取内部存储空间总大小,相当于电脑的硬盘空间大小<br>

 用途:可以写一些监听内存的代码,转换 GB 需要将返回的结果/1024/1024/1024<br>

 示例:

```java

 long MemorySize = ZtlManager.GetInstance().getTotalInternalMemorySize();//MemorySize 为获取到设备内部存储大小(字节)

```


 ## 获取剩余存储大小


 函数:public long getFreeMemory()<br>

 描述:获取内部剩余存储空间大小<br>

 用途:可以写一些监听内存的代码,转换 GB 需要将返回的结果/1024/1024/1024<br>

 示例:

```java

 long freeMemory = ZtlManager.GetInstance().getFreeMemory();//freeMemory 为获取到设备剩余存储大小(字节)

```


 ## 获取剩余运行内存


 函数:public long getFreeMemorySize()<br>

 描述:获取剩余的运行内存<br>

 用途:可用于监听 app 内存使用情况,用来查看是否有内存泄漏。接口返回的是字节,转换 GB 需要/1024/1024/1024<br>

 示例:

```java

 long FreeMemorySize = ZtlManager.GetInstance().getFreeMemorySize();//FreeMemorySize 为获取到的剩余运行内存(字节)

```


 ## 获取内部SD卡路径


 函数:public String getInternalSDCardPath()<br>

 描述:获取 Android 设备内部 sdcard 路径<br>

 示例:

```java

 String sdcardPath = ZtlManager.GetInstance.getInternalSDCardPath();//sdcardPath 为 Android 设备内部 SDcard 路径

```


 ## 获取外部SD卡路径


 函数:public String getExternalSDCardPath()<br>

 描述:获取 Android 设备外部 sdcard 路径,比如说 TF 卡。<br>

 示例:

```java

 String externalSDCardPath = ZtlManager.GetInstance.getExternalSDCardPath();//externalSDCardPath 为 Android 设备外部 SD 卡路径

```


 ## 获取插入U盘个数


 函数:public int getUSBDiskCount()<br>

 描述:获取 Android 设备插入U盘个数<br>

 示例:

```java

 int USBDiskCunt = ZtlManager.GetInstance.getUSBDiskCount();//USBDiskCunt 为 Android 设备插入U盘个数

```


 ## 获取指定索引U盘路径


 函数:public String getUSBDisk(int index)<br>

 描述:获取 Android 设备指定索引U盘路径,适用于有多个U盘时使用<br>

 参数说明:index:指定索引。<br>

 示例:

```java

 String USBPath = ZtlManager.GetInstance.getUSBDisk(1);//USBPath 为获取到的第1个U盘路径

```


 ## 获取U盘路径


 函数:public String getUsbStoragePath()<br>

 描述:获取 Android 设备 USB 储存器路径<br>

 备注:因为监听系统广播的 media_mounted 返回的路径各个平台都不统一,所以如果想获取精确的U盘路径,推荐使用此接口。当U盘插入一段时间后,才能够返回正确的值。不插入U盘则返回 null。<br>

 示例:

```java

 String usbPath = ZtlManager.GetInstance.getUsbStoragePath();//usbPath 为 Android 设备的 U 盘存储器路径

```


 ## 休眠


 函数:public void sleep()<br>

 描述:设置 Android 系统进入休眠状态<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 说明:使用该接口不需要权限。在休眠状态下需定时执行唤醒语句,否则需要重启机器才能唤醒。<br>

 注意:如果需要休眠后,要使当前 activity 继续运行,<br>

 则需添加权限:android:name="android.permission.WAKE_LOCK" <br>

 然后在 activity 里写: getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);<br>

 示例:

```java

 //Android 设备进入休眠状态

 ZtlManager.GetInstance.sleep();

```


 ## 唤醒


 函数:public void awake()<br>

 描述:设置 Android 系统从休眠状态进入唤醒状态<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 示例:

```java

 //Android 设备从休眠进入唤醒状态

 ZtlManager.GetInstance.awake();

```


 ## 关机


 函数:public void shutdown()<br>

 描述:使 Android 系统进入关机状态。<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 注意:在 OTG 连接到电脑的情况下,会导致关机变重启<br>

 示例:

```java

 //Android 系统进入关机状态

 ZtlManager.GetInstance().shutdown();

```


 ## 重启


 函数:public void reboot(int delay)<br>

 描述:重启 Android 系统<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 参数说明:delay:传入延迟时间,如不需要延迟,传入0即可<br>

 示例:

```java

 //10 秒后进入重启

 ZtlManager.GetInstance().reboot(10);

```


 ## 截取当前屏幕


 函数:public void startScreenShot(String path,String fileName)<br>

 描述:截取当前屏幕并保存到指定路径<br>

 参数说明:path:保存截图路径。fileName:文件名,后缀名需要为.png<br>

 示例:

```java

 //截取当前屏幕保存到/sdcard/1.png

 ZtlManager.GetInstance.startScreenShot("/sdcard/","1.png");

```


 ## 设置系统桌面


 函数:public void setLauncher(String pkgage,String Activity)<br>

 描述:设置 Android 系统桌面,需要设置的 APP 必须已存在,否则设置不成功,且不报错。如果需要恢复成默认桌面,参数传入 null 即可。<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 参数说明:pkgage:需要设置桌面的APP包名。Activity:需要设置桌面的APP类名<br>

 示例:

```java

 /** 注意:设置的程序需要有以下属性成为桌面程序:

  * <category android:name="android.intent.category.HOME"/> 

  * <category android:name="android.intent.category.DEFAULT"/> 

 */

 //替换Android系统桌面

 ZtlManager.GetInstance.setLauncher("com.ztl.test","com.ztl.test.MainActivity");

```


 ## 设置普通APP为系统桌面


 函数:public void setDesktop(String pkgage)<br>

 描述:设置 Android 系统桌面,需要设置的 APP 必须已存在,否则设置不成功,且不报错。如果需要恢复成默认桌面,参数传入 null 即可。<br>

 参数说明:pkgage:需要设置桌面的APP包名<br>

 示例:

```java

 //替换Android系统桌面

 ZtlManager.GetInstance.setDesktop("com.ztl.test");

```


 ## 获取设置的系统桌面包名


 函数:public String getDesktop()<br>

 描述:获取设置的系统桌面包名<br>

 参数说明:返回值:返回设置的系统桌面包名<br>

 示例:

```java

 String desktop = ZtlManager.GetInstance.getDesktop(); //desktop为获取的系统桌面包名

```


 ## 判断包名对应的APP是否存在


 函数:public boolean isAppExist(String pkgName)<br>

 描述:判断包名对应的 APP 是否存在设备中<br>

 参数说明:pkgName:需要判断的APP包名。boolean:返回值,true = 存在; false = 不存在。<br>

 示例:

```java

 boolean isAPPExist = ZtlManager.GetInstance().isAppExist(pkgName);//isAPPExist 为判断 APP 是否存在的返回值

```


 ## 恢复出厂设置


 函数:public void resetSystem()<br>

 描述:Android 系统恢复出厂设置<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 示例:

```java

 //Android 设备恢复出厂设置

 ZtlManager.GetInstance().resetSystem();

```


 ## 打开设置界面


 函数:public void startSettings()<br>

 描述:打开系统设置界面<br>

 示例:

```java

 //打开系统设置界面

 ZtlManager.GetInstance().startSettings();

```


 ## 打开wifi界面


 函数:public void startWifiSettings()<br>

 描述:打开系统 Wifi 设置界面<br>

 示例:

```java

 //打开 Android 系统 Wifi 设置界面

 ZtlManager.GetInstance().startWifiSettings();

```


 ## 打开或关闭导航栏与状态栏


 函数:public void openSystemBar(boolean bOpen)<br>

 描述:是否已打开 Android 设备导航栏与状态栏<br>

 参数说明:bOpen:传入 true(显示)或 false(隐藏)即可<br>

 示例:

```java

 //设置 Android 设备打开导航栏与状态栏

 ZtlManager.GetInstance().openSystemBar(true);

```


 ## 获取当前导航栏状态


 函数:public boolean isSystemBarOpen()<br>

 描述:是否已打开 Android 设备导航栏与状态栏<br>

 参数说明:返回值:true:显示;false:隐藏<br>

 示例:

```java

 boolean isSystemBarOpen = ZtlManager.GetInstance().isSystemBarOpen();//isSystemBarOpen 为导航栏与状态栏显示状态

```


 ## 设置USB调试状态


 函数:public void openUsbDebug(boolean bOpen)<br>

 描述:设置 Android 设备 USB 调试状态<br>

 说明:cmd窗口可通过设置节点值实现:adb shell settings put global adb_enabled 0 ;0代表关闭,1代表打开(可用网络adb连接后设置)<br>

 官方标准接口:Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.ADB_ENABLED, 0);该接口需要程序设置为系统程序。<br>

 参数说明:返回值:true:打开USB调试;false:关闭USB调试<br>

 示例:

```java

 //设置 Android 设备 USB 调试打开

 ZtlManager.GetInstance().openUsbDebug(true);

```


 ## 获取USB调试状态


 函数:public boolean isUsbDebugOpen()<br>

 描述:判断 Android 系统 USB 调试是否已打开<br>

 参数说明:返回值:true:USB调试已打开;false:USB调试未打开<br>

 示例:

```java

 boolean isUsbDebugOpen = ZtlManager.GetInstance().isUsbDebugOpen();//isUsbDebugOpen 为 USB 调试口状态

```


 ## OTG功能开关


 函数:public boolean setUSBtoPC(boolean toPC)<br>

 描述:设置 Android 设备 OTG 口连接状态。开,电脑才能识别这个设备。关就没有。开的时候可以通过 android studio 或者别的方式看 logcat,方便调试,发布等。但是发布后,推荐关闭。避免第三方 apk 安装或者系统信息被非法读取。如电脑识别不到 USB 连接时,请连续点击设备中的:设置/关于设备/版本号,开启开发者模式,当屏幕下方提示您已处于开发者模式时,返回设置界面,在下方会开启一个开发者选项,进入开发者选项,在调试中开启 USB 调试状态即可。<br>

 参数说明:toPC:true:连接到PC;false:不连接PC<br>

 示例:

```java

 //设置 Android 设备打开 OTG 调试口

 ZtlManager.GetInstance().setUSBtoPC(true);

```


 ## 获取OTG口连接状态


 函数:public boolean getUSBtoPC()<br>

 描述:获取 Android 设备 OTG 口连接状态<br>

 参数说明:返回值:true:OTG口已打开;false:OTG口未打开<br>

 示例:

```java

 boolean USBconnectPC = ZtlManager.GetInstance().getUSBtoPC();// USBconnectPC 为 OTG 口状态

```


 ## 设置生成序列号


 函数:public void setBuildSerial(String sn)<br>

 描述:设置 Android 设备序列号。这个对应的是 Build.SERIAL。一般用于微信刷脸设置主板序列号用<br>

 参数说明:sn:设置Android设备序列号<br>

 示例:

```java

 //设置 Android 设备序列号为"ztl-dz-test"

 ZtlManager.GetInstance().setBuildSerial("ztl-dz-test");

```


 ## 获取生成的序列号


 函数:public String getBuildSerial()<br>

 描述:获取 Android 设备生成的序列号<br>

 注意:获取到的序列号不保证唯一,如需唯一设备识别码,请使用CPUID,接口为:getDeviceID()<br>

 参数说明:返回值:获取Android设备生成的序列号<br>

 示例:

```java

 String sn = ZtlManager.GetInstance().getBuildSerial();//sn 为获取到的 Android 设备生成的序列号

```


 ## 判断4G网络故障代码


 函数:public static String get4gStatic(Context context)<br>

 描述:判断4G网络故障代码,可用于获取到故障代码时,代码添加处理代码<br>

 参数说明:参数说明:context:传入上下文,如:MainActivity.this等。<br>返回值:null:需要更新助手;<br>-101:助手没有可获取这个关键字值;<br>

0:4G网络正常<br>

1:没网络,但以注册<br>

-1002:4G的GPIO错误<br>

-2:4G模块断电状态<br>

-3:4G模块上电状态<br>

-4:没有注册,没有搜索到运营商<br>

-5:没有注册,正在搜索或正在注册<br>

-6:拒绝注册<br>

-7:信号错误或没插卡<br>

-8:未知错误<br>

-9:CGREG未知错误<br>

+CGREG 1:启用网络注册未经请求的结果代码<br>

+CGREG 2:启用网络注册和位置信息未经请求的结果代码<br>

 示例:

```java

 String state = ZtlManager.GetInstance().get4gStatic(this);//state 为获取到的4G故障码

```


 ## 判断系统是否支持看门狗功能


 函数:public boolean hasWatchDog()<br>

 描述:判断系统是否支持看门狗功能<br>

 参数说明:返回值:true:支持 false:不支持<br>

 示例:

```java

 boolean isHas = ZtlManager.GetInstace().hasWatchDog();//isHas 为判断系统是否支持看门狗功能

```


 ## 打开看门狗并喂狗


 函数:public boolean openWatchDog()<br>

 描述:打开看门狗,并且进行喂狗,默认一分钟喂3次狗<br>

 参数说明:返回值:true:打开成功 false:打开失败<br>

 示例:

```java

 boolean isOpen = ZtlManager.GetInstace().openWatchDog();//isOpen 为是否打开看门狗功能

```


 ## 关闭看门狗


 函数:public boolean closeWatchDog()<br>

 描述:关闭看门狗,停止喂狗<br>

 参数说明:返回值:true:关闭成功 false:关闭失败<br>

 示例:

```java

 boolean isClose = ZtlManager.GetInstace().closeWatchDog();//isClose 为是否已关闭看门狗

```


 ## 判断看门狗是否正在运行


 函数:public boolean isRunWatchDog()<br>

 描述:判断看门狗是否正在运行<br>

 参数说明:返回值:true:看门狗正在运行 false:看门狗未运行<br>

 示例:

```java

 boolean isRun = ZtlManager.GetInstace().isRunWatchDog();//isRun 为判断看门狗是否正在运行

```


 ## 读取看门狗的值


 函数:public String watchDogValue()<br>

 描述:判断看门狗是否正在运行<br>

 参数说明:返回值:1:打开看门狗 2:看门狗喂狗 3:关闭看门狗<br>

 示例:

```java

 String value = ZtlManager.GetInstace().watchDogValue();//value 为获取到的看门狗的值

```


 ## 设置锁屏


 函数:public void lockScreenSettings(boolean bEnable, String password)<br>

 描述:设置安卓系统锁屏密码,设置完成后不会直接锁屏,需要调用lockScreen()接口。需要固件支持<br>

 参数说明:参数:bEnable:true:启用锁屏 false:不启用 password:设置锁屏密码<br>

 示例:

```java

 ZtlManager.GetInstace().lockScreenSettings(true, "123456");//启用锁屏,设置密码为123456

```


 ## 锁屏


 函数:public void lockScreen()<br>

 描述:使用lockScreenSettings()接口设置密码后,调用此接口即可设置锁屏,需要固件支持<br>

 示例:

```java

 ZtlManager.GetInstace().lockScreen();//设置Android系统锁屏

```


 ## 执行cmd命令并获取返回值


 函数:public static String execRootCmd(String cmd)<br>

 描述:执行cmd命令并获取命令返回值<br>

 示例:

```java

 String strCmd = ZtlManager.GetInstace().execRootCmd("pm path com.ztl.test");//strCmd为获取到的cmd命令返回值

```


 ## 执行命令行


 函数:public int execRootCmdSilent(String cmd)<br>

 描述:su执行命令行,如su失效,则执行testsu<br>

 示例:

```java

 int result = ZtlManager.GetInstace().execRootCmdSilent("reboot");

 //返回值参考:https://blog.csdn.net/qq_35661171/article/details/79096786

```


 ## 设置开机自启动


 函数:public void setBootPackageActivity(String pkgName,String pkgActivity)<br>

 描述:设置 Android 系统开机自启动 APP 包名和 类名<br>

 用途:如果嫌广播自启动麻烦,则可调用此接口。此 api 只支持一个 app。多次设置,只有最后一次设置有效。但这个接口和广播自启动一样,需要程序启动一次。<br>

如果是生产环境中需要大批量多机器部署,则不现实。此时,可通过厂家发布固件内置 app,并将该 app 自启动。弊端:修改 build.prop 内置成系统应用(system/app 目录下)无法通过正常安装更新版本。<br>

 build.prop修改方法:<br>

 persist.sys.bootPkgName=com.ztl.test(填入需要自启动的包名)<br>

 persist.sys.bootPkgActivity=com.ztl.test.MainActivity(填入需要自启动的类名)<br>

 参数说明:pkgName:APP包名;pkgActivity:APP类名<br>

 示例:

```java

 //设置【系统设置】为开机自启动

 ZtlManager.GetInstance.setBootPackageActivity("com.android.settings","com.android.settings.Settings");

```


 ## 获取设置的开机自启动APP的包名


 函数:public String getBootPackageName()<br>

 描述:获取 Android 设备开机自启动的 APP 包名<br>

 参数说明:返回值:自启动APP包名<br>

 示例:

```java

 String pkgName = ZtlManager.GetInstance.getBootPackageName();//pkgName 为获取到的开机自启动 APP 包名

```


 ## 获取设置的开机自启动APP的类名


 函数:public String getBootPackageActivity()<br>

 描述:获取 Android 设备开机自启动的 APP 中的类名<br>

 参数说明:返回值:自启动APP类名<br>

 示例:

```java

 String pkgActivity = ZtlManager.GetInstance.getBootPackageActivity();//pkgActivity 为获取到的开机自启动 APP 的 Activity 类名

```


 ## 启动另一个APP


 函数:public void startActivity(String pkgName,String pkgActivity)<br>

 描述:启动另一个 APP,标准做法的一种封装,更易于使用。<br>

 参数说明:pkgName:要启动的APP包名;pkgActivity:要启动的APP类名<br>

 示例:

```java

 //打开【系统设置】界面

 ZtlManager.GetInstance.startActivity("com.android.settings","com.android.settings.Settings");

```


 ## 静默安装APK


 函数:public void installAppSilent(String filePath)<br>

 描述:静默安装指定路径的 APK 文件<br>

 备注:仅限于有 root 权限的固件使用。比如微信刷脸就不适用。没有 root 权限的用户可以调用如下接口完成此功能:InstallApp()、installAppAndStartUp()、installAppSilentAndRebootSystem()。<br>

 参数说明:filePath:APK文件路径。<br>

 示例:

```java

 //静默安装 test.apk

 ZtlManager.GetInstance().installAppSilent("/sdcard/test.apk");

```


 ## 无需root权限静默安装APK


 函数:public void installApp(String filePath)<br>

 描述:静默安装指定路径的 APK 文件<br>

 备注:此接口无需系统权限,但需系统固件支持。 验证方法见文末附注。<br>

 参数说明:filePath:APK文件安装路径。<br>

 示例:

```java

 //静默安装 /sdcard/test.apk

 ZtlManager.GetInstance().installApp("/sdcard/test.apk");

```


 ## 卸载APP


 函数:public void uninstallAppSilent(String packageName)<br>

 描述:卸载指定包名的 APP<br>

 参数说明:packageName:指定APP包名。<br>

 示例:

```java

 //卸载包名为 com.dc.test 的apk

 ZtlManager.GetInstance().uninstallAppSilent("com.dc.test");

```


 ## 静默安装APK并且重启系统


 函数:public void installAppSilentAndRebootSystem(String filePath,int reboot_in_sec)<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 描述:静默安装 APK 并且重启 Android 系统。如果是广播自启动的程序, 有 可 能 会 重 启 后 无 法 正 常 启 动 。 所 以 除 非 必 须 重 启 系 统 , 否 则 推 荐 使 用 installAppAndStartUp()。<br>

 参数说明:filePath:APK所在路径;reboot_in_sec:安装开始时延迟多少秒后重启系统。<br>

 示例:

```java

 //安装/sdcard/目录下的test.apk,并且在10秒后重启安卓系统

 ZtlManager.GetInstance().installAppSilentAndRebootSystem("/sdcard/test.apk", "10");

```


 ## 安装APP并启动安装的APP


 函数:public void installAppAndStartUp(String filePath,String pkgName)<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 描述:安装 APK,并且在安装完成后启动所安装的 APP<br>

 参数说明:filePath:APK所在路径;pkgName:要启动的APP包名。<br>

 示例:

```java

 //安装/sdcard/目录下的test.apk,并且在安装完成后启动包名为"com.dc.test"的APK

 ZtlManager.GetInstance().installAppAndStartUp("/sdcard/test.apk", "com.dc.test");

```


 ## 守护进程


 函数:接口1:public void keepActivity(String pkgName)<br>

 备注:需要验证系统是否支持;验证方法:adb shell pm path com.ztl.appservice<br>

 描述:保持APP置顶状态。在程序被切换到后台或关闭时,自动返回或启动该 app。保持该 app 在前端。用于售货机 ATM 广告机 等必须保活的应用。当需要打开系统设置界面或运行其他 app 暂时进行其他设置时,请先调用取消接口。否则会一直保持 app 置顶导致无法操作。<br>

 参数说明:pkgName:需要保持置顶的APP<br>

 示例:

```java

 //保持包名为"com.dc.test"的 APP 置顶状态

 ZtlManager.GetInstance().keepActivity("com.dc.test");

```


 函数:接口2:public void keepActivity(String pkgName, int sec)<br>

 备注:需要验证系统是否支持;验证方法:adb shell pm path com.ztl.appservice<br>

 描述:保持APP置顶状态。在程序被切换到后台或关闭时,自动返回或启动该 app。保持该 app 在前端。用于售货机 ATM 广告机 等必须保活的应用。当需要打开系统设置界面或运行其他 app 暂时进行其他设置时,请先调用取消接口。否则会一直保持 app 置顶导致无法操作。<br>

 参数说明:pkgName:需要保持置顶的APP;sec:设置保活时间,最低为2,如设置为2,会在守护程序退出后2s后进行拉起。<br>

 示例:

```java

 //保持包名为"com.dc.test"的 APP 置顶状态,设置保活时间为2s

 ZtlManager.GetInstance().keepActivity("com.dc.test", 2);

```


 ## 取消守护进程


 函数:public void unKeepActivity()<br>

 备注:需要验证系统是否支持;验证方法:adb shell pm path com.ztl.appservice<br>

 描述:取消守护进程,取消置顶状态。<br>

 示例:

```java

 //取消守护进程

 ZtlManager.GetInstance().unKeepActivity();

```


 ## 保活某个服务


 函数:接口1:public void keepService(String packageName, String service)<br>

 备注:需要验证系统是否支持;验证方法:adb shell pm path com.ztl.appservice<br>

 描述:保活某个服务,不被系统回收。<br>

 参数说明:packageName:保活服务的APP包名;service:需要保活的服务。<br>

 示例:

```java

 //保活服务"com.dc.test.testService"不被系统回收

 ZtlManager.GetInstance().keepService("com.dc.test", "com.dc.test.testService");

```


 函数:接口2:public void keepService(String packageName, String service, int sec)<br>

 备注:需要验证系统是否支持;验证方法:adb shell pm path com.ztl.appservice<br>

 描述:保活某个服务,不被系统回收。<br>

 参数说明:packageName:保活服务的APP包名;service:需要保活的服务;sec:设置保活时间,最低为2s<br>

 示例:

```java

 //保活服务"com.dc.test.testService"不被系统回收,设置每2s检测一次

 ZtlManager.GetInstance().keepService("com.dc.test", "com.dc.test.testService", 2);

```


 ## 取消保活某个服务


 函数:public void unKeepService()<br>

 备注:需要验证系统是否支持;验证方法:adb shell pm path com.ztl.appservice<br>

 描述:取消保活某个服务,此操作并不会杀死这个服务。<br>

 示例:

```java

 //取消保活服务

 ZtlManager.GetInstance().unKeepService();

```


 ## APP使用硬件看门狗


  函数:public void WatchDog()<br>

  描述:APP使用硬件看门狗,自动禁止系统喂狗<br>

  备注:<br>

  1.硬件要支持<br>

  2.系统要支持(设置-其他设置 版本号大于等于 20211029)<br>

  3.系统开机默认是系统自动喂狗<br>

  4.调用此接口,系统自动停止喂狗,由用户自己喂狗,不继续喂狗,系统会自动重启(200秒左右,具体时间按实际为准)<br>

  5.调此接口就是喂狗一次,需要重复调用,建议20秒喂一次<br>

  6.要把板子的跳线帽拔掉,才启用看门狗,不拔,看门狗无效,不会重启系统<br>

  说明:调用此接口后,继续调用feedHardwareWatchDog();即可进行app喂狗

 示例:

```java

 ZtlManager.GetInstance().WatchDog();

```


# 时间


 ## 获取系统日期


 函数:public String getSystemDate()<br>

 描述:获取 Android 设备系统日期<br>

 参数说明:返回值:获取Android系统日期,格式为 yyyy/MM/dd。<br>

 示例:

```java

 String systemDate = ZtlManager.GetInstance().getSystemDate(); //systemDate 为获取到的 Android 系统日期

```


 ## 获取系统时间


 函数:public String getSystemTime()<br>

 描述:获取 Android 设备系统时间<br>

 参数说明:返回值:获取Android系统时间,格式为 HH:mm:ss。<br>

 示例:

```java

 String systemTime = ZtlManager.GetInstance().getSystemTime(); //systemTime 为获取到的 Android 系统时间

```


 ## 立刻同步网络时间


 函数:public void syncNetworkTime()<br>

 描述:获取 Android 设备系统日期<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 用途:一般来说,系统联网的情况下,时间都会同步。但如果应用程序对时间精度有更高要 求,可以通过此接口强行同步时间。<br>

 示例:

```java

 //设置Android系统立刻同步时间

 ZtlManager.GetInstance.syncNetworkTime();

```


 ## 设置同步时间的间隔


 函数:public void syncNetworkTimePeroid(int peroidInMinute)<br>

 描述:设置同步网络时间间隔。<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 参数说明:peroidInMinute:同步时间周期,分钟制。<br>

 示例:

```java

 //间隔 10 分钟同步一次网络时间

 ZtlManager.GetInstance().syncNetworkTimePeroid(10);

```


 ## 设置系统日期与时间


 函数:public void setSystemTime(Calendar cal)<br>

 描述:设置 Android 设备系统日期与时间。<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 参数说明:cal:传入需要设置的时间即可。<br>

 示例:

```java

 //设置 Android 设备系统日期时间为 2020 年 10 月 10 日 10 时 10 分

 Calendar cal = Calendar.getInstance();

 cal.set(2020,10,10,10,10);

 ZtlManager.GetInstance().setSystemTime(cal);

```


 函数:public void setSystemTime(long timeinmili)<br>

 描述:设置 Android 设备系统日期与时间。<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 参数说明:timeinmili:传入需要设置的时间即可(毫秒)。<br>

 示例:

```java

 //设置 Android 设备系统日期时间为 2020 年 10 月 10 日 10 时 10 分

 long setTime = 1602295800000;

 ZtlManager.GetInstance().setSystemTime(setTime);

```


 ## 判断系统的时区是否为自动获取


 函数:public boolean isAutoTimezone()<br>

 描述:判断 Android 系统的时区是否为自动获取<br>

 参数说明:返回值:true:自动获取;false:手动设置。<br>

 示例:

```java

 boolean isAutoTimezone = ZtlManager.GetInstance().isAutoTimezone(); //isAutoTimezone 为获取到的 Android 系统时区状态

```


 ## 设置系统时区开关


 函数:public void setAutoTimezone(boolean bAuto)<br>

 描述:设置 Android 系统的自动选择时区开关<br>

 参数说明:bAuto:true:自动获取;false:手动设置。<br>

 备注:需要程序成为系统程序或申请相关权限:

 android:sharedUserId="android.uid.system" <!--成为系统程序-->

 android:name="android.permission.WRITE_SETTINGS"

 android:name="android.permission.WRITE_SECURE_SETTINGS"

 android:name="android.permission.SET_TIME_ZONE"

 示例:

```java

 //设置 Android 设备系统时区为自动获取

 ZtlManager.GetInstance().setAutoTimezone(true);

```


 ## 判断系统的时间是否自动获取


 函数:public boolean isAutoDateTime()<br>

 描述:判断 Android 系统的时间是否为自动获取<br>

 参数说明:返回值:true:自动获取;false:手动设置。<br>

 示例:

```java

 boolean autoDateTime = ZtlManager.GetInstance().isAutoDateTime(); //autoDateTime 为判断系统的时间是否自动获取

```


 ## 设置系统的自动确定日期与时间开关


 函数:public void setAutoDateTime(boolean bAuto)<br>

 描述:设置Android系统的自动确定日期与时间的开关<br>

 参数说明:bAuto:true:自动获取;false:手动设置。<br>

 备注:需要程序成为系统程序或申请相关权限:

 android:sharedUserId="android.uid.system" <!--成为系统程序-->

 android:name="android.permission.WRITE_SETTINGS"

 android:name="android.permission.WRITE_SECURE_SETTINGS"

 android:name="android.permission.SET_TIME_ZONE"

 示例:

```java

 //设置 Android 设备系统日期与时间为自动获取

 ZtlManager.GetInstance().setAutoDateTime(true);

```


 ## 定时关机


 函数:public void setSchedulePowerOff(int hour, int minute, boolean enableSchedulPowerOff)<br>

 描述:设置 Android 系统定时关机,有效期为每天<br>

 参数说明:hour:时(0 <= hour < 24);minute:分(0 <= minute < 60);enableSchedulPowerOff:使能/关闭定时关机<br>

 备注:使能或者关闭定时开关机功能,直接设置第三个参数为true(使能)/false(关闭)---**该接口已废弃,推荐使用新接口**:setPoweroffEveryday();参数不变<br>

 示例:

```java

 //设置 Android 设备 12:10 每天定时关机

 ZtlManager.GetInstance().setSchedulePowerOff(12,10,true);

```


 ## 定时开机


 函数:public void setSchedulePowerOn(int hour, int minute, boolean enableSchedulPowerOn)<br>

 描述:设置 Android 系统定时开机,有效期为每天<br>

 参数说明:hour:时(0 <= hour < 24);minute:分(0 <= minute < 60);enableSchedulPowerOn:使能/关闭定时开机<br>

 备注:使能或者关闭定时开关机功能,直接设置第三个参数为true(使能)/false(关闭)---**该接口已废弃,推荐使用新接口**:setPoweronEveryday();参数不变<br>

 示例:

```java

 //设置 Android 设备 12:11 每天定时开机

 ZtlManager.GetInstance().setSchedulePowerOn(12,11,true);

```


 ## 设置系统指定某天定时关机


 函数:public void setPowerOffAlarm(int year, int month, int day, int hour, int minute, boolean enableSchedulPowerOff)<br>

 描述:设置 Android 系统定时关机,有效期为一次性<br>

 参数说明:year:年;month:月;day:日;hour:时(0 <= hour < 24);minute:分(0 <= minute < 60);enableSchedulPowerOff:使能/关闭定时关机<br>

 说明:**该接口已废弃,推荐使用新接口**:setPoweroffOnce();参数不变<br>

 示例:

```java

 //设置 Android 设备 2020 年 7 月 12 日 12:12 定时关机

 ZtlManager.GetInstance().setPowerOffAlarm(2020,7,12,12,12,true);

```


 ## 设置系统指定某天定时开机


 函数:public void setPowerOnAlarm(int year, int month, int day, int hour, int minute, boolean enableSchedulPowerOn)<br>

 描述:设置 Android 系统定时开机,有效期为一次性<br>

 参数说明:year:年;month:月;day:日;hour:时(0 <= hour < 24);minute:分(0 <= minute < 60);enableSchedulPowerOn:使能/关闭定时开机<br>

 说明:**该接口已废弃,推荐使用新接口**:setPoweronOnce();参数不变<br>

 示例:

```java

 //设置 Android 设备 2020 年 7 月 12 日 12:13 定时开机

 ZtlManager.GetInstance().setPowerOnAlarm(2020, 7, 12, 12, 13, true);

```


 ## 自定义周期定时关机


 函数:public void setPoweroffCustom(int hour, int minute, int weekDays, boolean bEnable)<br>

 描述:设置 Android 系统自定义定时关机<br>

 参数说明:hour:时(0 <= hour < 24);minute:分(0 <= minute < 60);weekDays:周期,计算周期方式:计算器-程序员-按位计算,一周为七天,第一位为周日(数值为1),第二位为周一(数值为2),第三位为周二(数值为4),第四位为周三(数值为8),第五位为周四(数值为16),第六位为周五(数值为32),第七位为周六(数值为64),可按照数值相加,来定制自定义周期定时关机,可填入0(代表执行一次),填入127(代表每天);bEnable:使能/关闭定时关机<br>

 示例:

```java

 //设置 Android 设备 周一至周五12:10定时关机

 ZtlManager.GetInstance().setPoweroffCustom(12, 10, 62, true);

```


 ## 自定义周期定时开机


 函数:public void setPoweronCustom(int hour, int minute, int weekDays, boolean bEnable)<br>

 描述:设置 Android 系统自定义定时开机<br>

 参数说明:hour:时(0 <= hour < 24);minute:分(0 <= minute < 60);weekDays:周期,计算周期方式:计算器-程序员-按位计算,一周为七天,第一位为周日(数值为1),第二位为周一(数值为2),第三位为周二(数值为4),第四位为周三(数值为8),第五位为周四(数值为16),第六位为周五(数值为32),第七位为周六(数值为64),可按照数值相加,来定制自定义周期定时关机,可填入0(代表执行一次),填入127(代表每天);bEnable:使能/关闭定时开机<br>

 示例:

```java

 //设置 Android 设备 周一至周五12:11定时开机

 ZtlManager.GetInstance().setPoweronCustom(12, 11, 62, true);

```


 ## 定时重启


 函数:public void timingReboot(int hour, int minute, int week, boolean enable)<br>

 描述:设置 Android 系统定时重启,可自选周期<br>

 参数说明:hour:时(0 <= hour < 24);minute:分(0 <= minute < 60);<br>week:周期,计算周期方式:计算器-程序员-按位计算,一周为七天,第一位为周日(数值为1),第二位为周一(数值为2),第三位为周二(数值为4),第四位为周三(数值为8),第五位为周四(数值为16),第六位为周五(数值为32),第七位为周六(数值为64),可按照数值相加,来定制自定义周期定时重启,可填入0(代表执行一次),填入127(代表每天);<br>enable:使能/关闭定时重启<br>

 示例:

```java

 //设置 Android 设备 周一至周五中午十二时重启

 ZtlManager.GetInstance().timingReboot(12, 0, 62, true);

```


 ## 设置系统指定某天定时重启


 函数:public void timingRebootAlarm(int year, int month, int day, int hour, int minute, boolean enable)<br>

 描述:设置 Android 系统定时重启,执行一次<br>

 参数说明:year:年;month:月;day:日;hour:时;minute:分;enable:使能\关闭定时重启<br>

 示例:

```java

 //设置 Android 设备 2021年5月1日12时重启

 ZtlManager.GetInstance().timingRebootAlarm(2021, 5, 1, 12, 0, true);

```


# 显示


 ## 获取屏幕分辨率


 函数:public String getDisplayMode()<br>

 描述:获取 Android 系统的屏幕分辨率<br>

 参数说明:返回值:获取Android设备的屏幕分辨率<br>

 示例:

```java

 String displayMode = ZtlManager.GetInstance().getDisplayMode(); //displayMode 为 Android 系统的屏幕分辨率

```


 ## 获取屏幕分辨率Y轴像素


 函数:public int getDisplayHeight()<br>

 描述:获取 Android 设备显示分辨率 Y 轴像素<br>

 参数说明:返回值:获取Android设备的分辨率Y轴像素<br>

 示例:

```java

 int screenHeight = ZtlManager.GetInstance().getDisplayHeight(); //screenHeight 为 Android 设备的显示分辨率 Y 轴像素

```


 ## 获取屏幕分辨率X轴像素


 函数:public int getDisplayWidth()<br>

 描述:获取 Android 设备显示分辨率 X 轴像素<br>

 参数说明:返回值:获取Android设备的分辨率X轴像素<br>

 示例:

```java

 int screenWidth = ZtlManager.GetInstance().getDisplayWidth(); //screenWidth 为 Android 设备的显示分辨率 X 轴像素

```


 ## 获取屏幕显示密度


 函数:public int getDisplayDensity()<br>

 描述:获取 Android 设备屏幕显示密度(dpi)<br>

 参数说明:返回值:获取Android设备显示密度<br>

 示例:

```java

 int screenDpi = ZtlManager.GetInstance().getDisplayDensity(); //screenDpi 为 Android 设备的屏幕显示密度

```


 ## 设置屏幕显示密度


 函数:public void setDisplayDensity(int dips)<br>

 描述:设置 Android 设备屏幕显示密度(dpi)<br>

 备注:此接口会导致系统重启,重启生效。<br>

 参数说明:dpis:支持120;160;240;320;或其他自定义值<br>

 示例:

```java

 //设置 Android 设备屏幕显示密度为 120

 ZtlManager.GetInstance().setDisplayDensity(120);

```


 ## 是否设置背光反向


 函数:public void reverseBrighness(boolean true_or_false)<br>

 描述:设置背光是否反向<br>

 备注:如果出现背光反向问题(即为调整亮度,调整越亮实际变暗,或者调整亮度越暗实际 变亮),可使用该接口来调整背光问题。<br>

 参数说明:true_or_false:true:调整背光为反向;false:不调整。<br>

 示例:

```java

 //设置 Android 设备背光反向

 ZtlManager.GetInstance().reverseBrighness(true);

```


 ## 获取背光是否已反向


 函数:public boolean isReverseBrighness()<br>

 描述:获取 Android 设备背光是否已方向<br>

 参数说明:返回值:true:已反向;false:未反向。<br>

 示例:

```java

 boolean isReverse = ZtlManager.GetInstance().isReverseBrighness(); //isReverse 为获取到的背光方向信息

```


 ## 获取当前亮度


 函数:public int getSystemBrightness()<br>

 描述:获取 Android 设备系统当前亮度<br>

 参数说明:返回值:Android系统亮度。<br>

 示例:

```java

 int systemBri = ZtlManager.GetInstance().getSystemBrightness(); //systemBri 为 Android 系统当前亮度

```


 ## 获取最大亮度值


 函数:public int getSystemMaxBrightness()<br>

 描述:获取 Android 设备系统最大亮度值<br>

 参数说明:返回值:Android系统最大亮度值。<br>

 示例:

```java

 int maxBrightness = ZtlManager.GetInstance().getSystemMaxBrightness(); //maxBrightness 为 Android 系统最大亮度

```


 ## 增大亮度值


 函数:public void increaseBrightness()<br>

 描述:设置系统亮度+1<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 示例:

```java

 //设置 Android 系统亮度+1

 ZtlManager.GetInstance().increaseBrightness();

```


 ## 降低亮度值


 函数:public void decreaseBrightness()<br>

 描述:设置系统亮度-1<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 示例:

```java

 //设置 Android 系统亮度-1

 ZtlManager.GetInstance().decreaseBrightness();

```


 ## 设置系统亮度


 函数:public void setBrightness(int brightness)<br>

 描述:设置系统亮度<br>

 备注:HDMI 和 VGA 暂不支持调整,需系统固件支持。 验证方法见文末附注。<br>

 参数说明:brightness:亮度值:0-255。

 示例:

```java

 //设置 Android 系统亮度为 200

 ZtlManager.GetInstance().setBrightness(200);

```


 ## 设置屏幕方向


 函数:public void setDisplayOrientation(int rotation)<br>

 描述:设置 Android 系统显示方向<br>

 备注:一般用于固件默认方向和实际屏幕不一致时使用。当 app 需要适应屏幕方向时,推荐 app 做处理而不是旋转整个系统。<br>

 参数说明:rotation:0:0度;90:90度(默认角度旋转90度);180:180度(默认角度旋转180度);270:270度(默认角度旋转270度)。<br>

 示例:

```java

 //设置 Android 系统屏幕方向旋转 90 度

 ZtlManager.GetInstance().setDisplayOrientation(90);

```


 ## 设置副屏方向


 函数:public void setExtendDisplayOrientation(int rotation)<br>

 描述:设置 Android 系统副屏显示方向<br>

 备注:一般用于固件默认方向和实际屏幕不一致时使用。当 app 需要适应屏幕方向时,推荐 app 做处理而不是旋转整个系统。<br>

 参数说明:rotation:0:0度;90:90度(默认角度旋转90度);180:180度(默认角度旋转180度);270:270度(默认角度旋转270度)。<br>

 示例:

```java

 //设置 Android 系统副屏方向旋转 90 度

 ZtlManager.GetInstance().setExtendDisplayOrientation(90);

```


 ## 设置多屏幕方向


 函数:public int setDisplayOrientation(int screen, int rotation)<br>

 描述:设置 Android 系统多屏幕方向<br>

 备注:一般用于固件默认方向和实际屏幕不一致时使用。当 app 需要适应屏幕方向时,推荐 app 做处理而不是旋转整个系统。<br>

 参数说明:screen:要设置的屏幕:0:主屏;1:副屏1;2:副屏2...以此类推,-1为同时显示;<br>

 rotation:0:0度;90:90度(默认角度旋转90度);180:180度(默认角度旋转180度);270:270度(默认角度旋转270度)。<br>

 返回值:-1:不支持;0:设置成功

 示例:

```java

 //设置 Android 系统所有屏幕方向旋转 90 度

 int value = ZtlManager.GetInstance().setDisplayOrientation(-1, 90);

```


 ## 获取屏幕方向


 函数:接口1:public int getDisplayOrientation()<br>

 描述:获取 Android 系统屏幕显示方向<br>

 参数说明:返回值:0:当前屏幕方向为0度;90:当前屏幕方向为90度;180:当前屏幕方向为180度;270:当前屏幕方向为270度。<br>

 示例:

```java

 int rotation = ZtlManager.GetInstance().getDisplayOrientation(); //rotation 为获取到的 Android 系统屏幕显示方向

```


 函数:接口2:public int getDisplayOrientation(int screen)<br>

 描述:获取 Android 系统指定屏幕显示方向<br>

 参数说明:返回值:-1:不支持此功能;0:当前屏幕方向为0度;90:当前屏幕方向为90度;180:当前屏幕方向为180度;270:当前屏幕方向为270度。<br>

 screen:0:获取主屏方向;1:获取副屏1屏幕方向;2:获取副屏2屏幕方向<br>

 示例:

```java

 int rotation = ZtlManager.GetInstance().getDisplayOrientation(0); //rotation 为获取到的 Android 系统主屏显示方向

```


 ## 设置触摸方向


 函数:public void setTouchOrientation(int orientation, boolean rebootnow)<br>

 描述:设置 Android 系统触摸方向(重启生效)<br>

 备注:仅限于触摸屏上下左右同时互反的时候设置起作用。如设置完仍不起作用,请联系厂 家技术支持。<br>

 参数说明:orientation:0:触摸方向顺时针旋转0度;90:触摸方向顺时针旋转90度;180:触摸方向顺时针旋转180度;270:触摸方向顺时针旋转270度。rebootnow:true:执行重启;false:不执行重启。<br>

 示例:

```java

 //设置 Android 系统触摸方向方向顺时针 90 度并且重启

 ZtlManager.GetInstance().setTouchOrientation(90,true);

```


 ## 获取触摸方向


 函数:public int getTouchOrientation()<br>

 描述:获取 Android 设备触摸方向<br>

 参数说明:返回值:0:当前触摸方向为0度;90:当前触摸方向为90度;180:当前触摸方向为180度;270当前触摸方向为270度;<br>

 示例:

```java

 int TpOrientation = ZtlManager.GetInstance().getTouchOrientation(); //TpOrientation 为获取到的 Android 系统触摸方向

```


 ## 获取支持的分辨率列表


 函数:public String[] getScreenModes()<br>

 描述:获取 Android 支持的分辨率列表<br>

 注意:3288-5.1 与 3288-7.1 此接口返回 null,暂不支持获取分辨率列表,如果其他版型获取到的分辨率列表为空,请检查 HDMI 连接是否正常。<br>

 参数说明:返回值:获取屏幕支持的分辨率列表。<br>

 示例:

```java

 String modes[] = ZtlManager.GetInstance().getScreenModes(); //modes[]为 Android 系统屏幕支持的分辨率

```


 ## 设置分辨率


 函数:public void setScreenMode(String mode)<br>

 描述:设置 Android 系统输出分辨率,系统将进入重启。(重启生效)<br>

 说明:此接口适用于 lvds,替换屏参的一种方式。<br>

 参数说明:mode:需要设置的分辨率,具体参考系统支持的分辨率。<br>

 示例:

```java

 //设置系统输出分辨率为 1920x1080 模式

 ZtlManager.GetInstance().setScreenMode("1920x1080@60p");

```


 ## 设置桌面壁纸


 函数:public void setWallpaper(String filePath)<br>

 描述:设置Android系统桌面壁纸,需要固件支持<br>

 参数说明:filePath:壁纸所在路径,如"/sdcard/1.png"<br>

 示例:

```java

 ZtlManager.GetInstace().setWallpaper("/sdcard/1.png");//设置Android系统桌面壁纸为/sdcard/目录下的1.png

```


 ## 设置字体大小


 函数:public void setFontSize(int index)<br>

 描述:设置Android系统字体大小<br>

 参数说明:index:1:较小; 2:正常; 3:较大; 4:最大<br>

 示例:

```java

 ZtlManager.GetInstace().setFontSize(4);//设置Android系统字体为最大显示

```


 ## 获取固件所支持的屏幕个数


 函数:public int getDisplayCount()<br>

 描述:获取固件所支持的屏幕个数<br>

 参数说明:返回值:获取支持显示屏幕个数<br>

 示例:

```java

 int count = ZtlManager.GetInstace().getDisplayCount();//count为获取固件支持屏幕个数

```


# 网络


 ## 获取MAC地址


 函数:public String getMacAddress()<br>

 描述:获取 Android 系统 MAC 地址。这里获取的是 eth0 节点的 mac<br>

 参数说明:返回值:Android设备MAC地址。<br>

 示例:

```java

 String MacAddress = ZtlManager.GetInstance().getMacAddress(); //MacAddress 为获取到的 Android 系统 Mac 地址

```


 ## 获取IPv4地址


 函数:public String getLocalIpAddress()<br>

 描述:获取 Android 系统 IPv4 地址<br>

 备注:需要申请权限:android:name="android.permission.ACCESS_NETWORK_STATE"<br>

 参数说明:返回值:Android设备APv4地址。<br>

 示例:

```java

 String IPv4Address = ZtlManager.GetInstance().getLocalIpAddress(); //IPv4Address 为获取到的 Android 系统 IPv4 地址

```


 ## 获取当前连接的网络类型


 函数:public int getNetWorkType()<br>

 描述:获取 Android 系统当前连接的网络类型<br>

 备注:一般用于检测 wifi 和以太网同时连接时判断连接的是哪个网络。<br>

 需要申请权限:android:name="android.permission.ACCESS_NETWORK_STATE"<br>

 参数说明:返回值:-1:未知网络;0:以太网;1:wifi;2:2g;3:3g;4:4g;5:5g<br>

 示例:

```java

 int netWorkType = ZtlManager.GetInstance().getNetWorkType(); //NetWorkType 为返回的当前联网类型

```


 ## 指定wifi掉线重连


 函数:public void keepWifiConnect(String SSID, String password)<br>

 描述:连接指定 wifi 断线重连。由于 wifi 信号强度差或所连的 wifi 网络不可达等原因, 系统有时不会重连到指定网络。启用这个功能后,系统会保持连接到指定 wifi。请确保所 用的 wifi 在信号范围内,且能正常连接。如果启用该功能后,锁定的 wifi 不在信号范围内, 可以正常连接其他 wifi。<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 参数说明:SSID:WiFi名称;password:WiFi密码。<br>

 示例:

```java

 //连接到指定的 wifi,并且保持断线重连状态

 ZtlManager.GetInstance().keepWifiConnect("ZTLDZ","12345678");

```


 ## 指定wifi停止掉线重连


 函数:public void stopKeepWifiConnect()<br>

 描述:将 keepWifiConnect 配置的 wifi 不自动重连。此功能不会导致当前的 wifi 断开或关闭。<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 示例:

```java

 //停止自动连接到指定 wifi

 ZtlManager.GetInstance().stopKeepWifiConnect();

```


 ## 禁用或启用网络ADB


 函数:public void setNetAdb(boolea bEnable)<br>

 描述:启用:在没有 OTG 线的情况下,可启用网络 adb 连接网线进行调试。禁用:可保护主板信息不外泄。<br>

 参数说明:bEnable:true:启用网络adb调试;false:不启用网络adb调试。<br>

 示例:

```java

 //设置 Android 设备启用网络 adb

 ZtlManager.GetInstance().setNetAdb(true);

```


 ## 打开热点


 函数:public void openAp(String ssid, String psw)<br>

 描述:设置 Android 设备打开热点。<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 说明:API 设置的热点名称如果小于6位,会自动在后面添加6位MAC地址,如果热点名称大于6位,不会自动加任何东西。<br>

 可通过固件修改工具修改 build.prop 来设置开机启动热点功能,用法如下: persist.ztl.openap=ZTL/123456789 就会生成 ZTL-MAC(后三位)的热点,密码 123456789<br>

 参数说明:ssid:热点名称;psw:热点密码。<br>

 示例:

```java

 //设置 Android 设备打开热点:接入点名称为"Ztl-test",密码为"123456789"

 ZtlManager.GetInstance().openAp("Ztl-test","123456789");

```


 ## 关闭热点


 函数:public void closeAp()<br>

 描述:关闭已打开的 Android 设备热点。<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 示例:

```java

 //关闭已打开的 Android 设备热点

 ZtlManager.GetInstance().closeAp();

```


 ## 获取指定网络的IPv4地址


 函数:public String getIPv4(String nettype)<br>

 描述:获取 Android 设备指定网络的 IPv4 地址。<br>

 参数说明:nettype:ech0:以太网;wlan0:wifi;ppp0:电话卡。返回值:获取到的IPv4地址<br>

 示例:

```java

 String getIPv4address = ZtlManager.GetInstance().getIPv4("wlan0"); //getIPv4address 为获取到的wifi IPv4地址

```


 ## 设置以太网配置信息


 函数:public void setEthIP(boolean bStatic, String ip, String mask, String gate, String dns, String dns2)<br>

 描述:设置 Android 设备以太网模式与配置信息,如以太网 ip 地址等。<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 说明:如果需要设置动态获取,第一个参数传入false,其他参数传入null即可。<br>

 参数说明:bStatic:true:静态地址;false:动态获取。ip:需要设置的IP地址。mask:需要设置的子网掩码。gate:需要设置的网关。dns:需要设置的dns1。dns2:需要设置的dns2。<br>

 示例:

```java

 //设 置 以 太 网 为 静 态 设 置 , ip 地 址 为 192.168.101.111 , 子 网 掩 码 地 址 为 : 255.255.255.0,网关地址为:192.168.101.5,dns 地址为:192.168.101.1,dns2 地址为: 192.168.101.2

 ZtlManager.GetInstance().setEthIP(false, "192.168.101.112", "255.255.255.0", "192.168.101.5", "192.168.101.1", "192.168.101.2");

```


 ## 设置以太网配置信息多网卡设置


 函数:public void setEthIP(boolean bStatic,String name, String ip, String mask, String gate, String dns, String dns2)<br>

 描述:设置 Android 设备以太网模式与配置信息,如以太网 ip 地址等。<br>

 备注:需系统固件支持。(设置,其他设置,检测更新,版本大于等20220121)<br>

 说明:如果需要设置动态获取,第一个参数传入false和网卡名称,其他参数传入null即可。<br>

 参数说明:bStatic:true:静态地址;false:动态获取。name:网卡名称。ip:需要设置的IP地址。mask:需要设置的子网掩码。gate:需要设置的网关。dns:需要设置的dns1。dns2:需要设置的dns2。<br>

 示例:

```java

 //设 置 以 太 网 eth0网卡为 静 态 设 置 , ip 地 址 为 192.168.101.111 , 子 网 掩 码 地 址 为 : 255.255.255.0,网关地址为:192.168.101.5,dns 地址为:192.168.101.1,dns2 地址为: 192.168.101.2

 ZtlManager.GetInstance().setEthIP(false,"eth0", "192.168.101.112", "255.255.255.0", "192.168.101.5", "192.168.101.1", "192.168.101.2");

```


 ## 设置WIFI配置信息


 函数:public void setWifiIP(String ssid, String psw, boolean bStatic, String ip, String mask, String gate, String dns, String dns2)<br>

 描述:设置 Android 设备 wifi 配置信息,如:ip 地址等。<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 说明:如果未连接 wifi,第一个第二个参数传入 wifi 名称和密码会自动连接该 wifi。<br>

 参数说明:ssid:wifi名称。psw:wifi密码。bStatic:true:静态地址;false:动态获取。ip:需要设置的IP地址。mask:需要设置的子网掩码。gate:需要设置的网关。dns:需要设置的dns1。dns2:需要设置的dns2。<br>

 示例:

```java

 //设置连接 wifi 模式为静态设置,ip 地址为 192.168.101.111,子网掩码地址为: 255.255.255.0,网关地址为:192.168.101.5,dns 地址为:192.168.101.1,dns2 地址为: 192.168.101.2

 ZtlManager.GetInstance().setWifiIP("ztldz","12345678", true, "192.168.101.111", "255.255.255.0", "192.168.101.5", "192.168.101.1", "192.168.101.2");

```


 ## 设置WIFI热点


 函数:public void setWifiApConfig(String SSID, String Password, int channel, int WifiMode, boolean enable)<br>

 描述:设置 Android 设备 wifi 热点配置信息<br>

 参数说明:SSID:热点名称。Password:热点密码。channel:频段设置,如149;153;157;161;165。WifiMode:设置WiFi频段,如:0:2.4G;1:5G。enable:taur:打开热点;false:关闭热点<br>

 示例:

```java

 //设置打开wifi热点名称为:ztldz;wifi密码为12345678;频段设置为157;wifi频段设置为5G.

 ZtlManager.GetInstance().setWifiApConfig("ztldz","12345678", 157, 1, true);

```


 ## 启用或禁用4G模块断线自动重连


 函数:public void enable4GReset(boolean bEnable)<br>

 描述:启用或禁用 4G 模块断线自动重连。<br>

 备注:需系统固件支持。 验证方法见文末附注。一般用于没有 4G 模块掉线自动重连的固件。批量生产请在 build.prop 中添加:persist.ztl.4greset=0/1<br>

 参数说明:bEnable:true:使能4G模块掉线重连;false:不使能4G模块掉线重连。<br>

 示例:

```java

 //设置 Android 使能 4G 模块断线自动重连

 ZtlManager.GetInstance().enable4GReset(true)

```


 ## 获取4G模块IMEI信息


 函数:public String getImei()<br>

 描述:获取 Android 系统 4G 模块的国际移动用户识别码(IMEI)<br>

 备注:需要 app 申请权限:android.permission.READ_PHONE_STATE<br>

 参数说明:返回值:4G模块IMEI信息<br>

 示例:

```java

 String getImei = ZtlManager.GetInstance().getImei(); //getImei 为获取到的 Android 系统安装 4G 模块的 IMEI 信息

```


 ## 获取SIM卡TEL信息


 函数:public String getSimTel()<br>

 描述:获取 Android 系统 SIM 卡的号码信息<br>

 备注:需要 app 申请权限:android.permission.READ_PHONE_STATE<br>

 参数说明:返回值:SIM 卡的号码信息<br>

 示例:

```java

 String simtel = ZtlManager.GetInstance().getSimTel(); //simtel 为获取到的 Android 系统 SIM 卡的号码信息

```


 ## 获取SIM卡ICCID信息


 函数:public String getSimIccid()<br>

 描述:获取 Android 系统 SIM 卡的 Iccid 信息<br>

 备注:需要 app 申请权限:android.permission.READ_PHONE_STATE<br>

 参数说明:返回值:SIM 卡的 ICCID 信息<br>

 示例:

```java

 String simIccid = ZtlManager.GetInstance().getSimIccid(); //simIccid 为获取到的 Android 系统 SIM 卡的 Iccid 信息

```


 ## 获取SIM卡IMSI信息


 函数:public String getSimImsi()<br>

 描述:获取 Android 系统 SIM 卡的国际移动用户识别码(IMSI)<br>

 备注:需要 app 申请权限:android.permission.READ_PHONE_STATE<br>

 参数说明:返回值:SIM 卡的 IMSI 信息<br>

 示例:

```java

 String simIMSI = ZtlManager.GetInstance().getSimImsi(); //simIMSI 为获取到的 Android 系统 SIM 卡的号码信息

```


 ## 获取SIM卡运营商信息


 函数:public String getSimOperator()<br>

 描述:获取 Android 系统 SIM 卡的运营商信息<br>

 备注:需要 app 申请权限:android.permission.READ_PHONE_STATE<br>

 参数说明:返回值:SIM 卡的运营商信息<br>

 示例:

```java

 String simOperator = ZtlManager.GetInstance().getSimOperator(); //simOperator 为获取到的 Android 系统 SIM 卡的运营商信息

```


 ## 获取4G模块基带版本信息


 函数:public String getBaseBand()<br>

 描述:获取4G模块基带版本信息<br>

 参数说明:返回值:4G模块基带版本信息<br>

 示例:

```java

 String strBand = ZtlManager.GetInstance().getBaseBand(); 

```


 ## 设置APN


 函数:public void setAPN(String apn)<br>

 描述:设置指定的APN<br>

 备注:注意:设置前应使用hasAPN接口查询系统是否支持这个接口和是否已存在此APN<br>

 参数说明:要设置的APN<br>

 示例:

```java

 ZtlManager.GetInstance().setAPN("cnmet"); //设置cnmet

```


 ## 查询APN是否存在


 函数:public String hasAPN(String apn)

 描述:查询指定的APN是否存在<br>

 备注:查询apn是否存在<br>

 参数说明:要查询的APN<br>

 返回值:null表示没有初始化API或系统没有这接口,“-1”,不存在,其他已存在<br>

 示例:

```java

 String flag = ZtlManager.GetInstance().hasAPN("cnmet"); //查询cnmet是否存在

```

# 文件


 ## 获取文件后缀名


 函数:public String getFileType(String filePath)<br>

 描述:获取指定文件的后缀名<br>

 参数说明:filePath:文件路径;返回值:文件后缀名<br>

 示例:

```java

 String fileType = ZtlManager.GetInstance().getFileType("/sdcard/test.apk"); //fileType 为获取到的文件后缀名

```


 ## 判断文件是否存在


 函数:public boolean isExist(String path)<br>

 描述:获取指定路径文件的后缀名<br>

 参数说明:Path:文件路径;返回值:true:文件存在;false:文件不存在<br>

 示例:

```java

 boolean isExist = ZtlManager.GetInstance().isExist("/sdcard/test.apk"); //isExist 为判断文件是否存在结果

```


 ## 计算GPIO值


 函数:public int gpioStringToInt(String port)<br>

 描述:计算指定 GPIO 值<br>

 参数说明:port:GPIO口;返回值:GPIO值<br>

 示例:

```java

 int gpiovalue = ZtlManager.GetInstance.gpioStringToInt("GPIO7_A5"); //gpiovalue 为计算 GPIO7_A5 的值

```


 ## 设置GPIO输出值


 方法1:<br>

 函数:public void setGpioValue(String port, int value)<br>

 描述:将对应的 GPIO 设置为输出模式,并设置输出电平<br>

 备注:这只是个简易接口,为了更方便控制 GPIO 对象和提高执行效率,推荐使用 Gpio 类。<br>

 参数说明:port:GPIO口,具体IO口号参考IO口对应列表;value:1:输出高电平;0:输出低电平<br>

 示例:

```java

 //设置 GPIO7_A5 为输出高电平

 ZtlManager.GetInstance().setGpioValue("GPIO7_A5 ",1);

```

 方法2:<br>

 函数:public int setGpioValue(int type, boolean bIn, boolean bHigh)<br>

 描述:设置IO口的方向并设置值<br>

 备注:这只是个简易接口,为了更方便控制 GPIO 对象和提高执行效率,推荐使用 Gpio 类。<br>

 参数说明:type:GPIO口,对应规格书中的编号,如1、2、3等;bIn:true:设置输入模式;false:设置输出模式;bHigh:true:设置高电平;false:设置低电平<br>

 返回值说明:-1:IO口输入错误或IO口打开失败;-2:系统不支持该接口;1:设置成功<br>

 注意:当第二个参数设置成true时(设置IO口为输入模式),第三个参数设置无效。<br>

 示例:

```java

 //设置规格书中IO口编号1为输出,并设置为高电平

 ZtlManager.GetInstance().setGpioValue(1, false, true);

```


 ## 获取GPIO值


 方法1:<br>

 函数:public int getGpioValue(String port, String direction)<br>

 描述:获取指定 GPIO 的值。<br>

 参数说明:port:GPIO口,具体IO口号参考IO口对应列表;direction:in:输入;out:输出。返回值:GPIO的输出值<br>

 示例:

```java

 int value = ZtlManager.GetInstance().getGpioValue("GPIO7_A5", "out"); //value 为获取到的 GPIO 输出值

```

  方法2:<br>

 函数:public int getGpioValue(int type)<br>

 描述:获取指定GPIO口的值。<br>

 备注:这只是个简易接口,为了更方便控制 GPIO 对象和提高执行效率,推荐使用 Gpio 类。<br>

 参数说明:type:GPIO口,对应规格书中的编号,如1、2、3等;<br>

 返回值说明:-1:IO口输入错误或IO口打开失败;-2:系统不支持该接口;1:输入模式高电平;2:输入模式低电平;3:输出模式高电平;4:输出模式低电平<br>

 示例:

```java

 //设置规格书中IO口编号1为输出,并设置为高电平

 int value = ZtlManager.GetInstance().getGpioValue(1); //value为获取GPIO编号1的值

```


 ## 设置GPIO方向


 函数:public void setGpioDirection(String port, String direction)<br>

 描述:设置 GPIO 的方向。<br>

 参数说明:port:GPIO口,具体IO口号参考IO口对应列表;direction:in:输入;out:输出。<br>

 示例:

```java

 //设置 GPIO7_A5 为输入状态

 ZtlManager.GetInstance().setGpioDirection("GPIO7_A5", "in");

```


 ## 获取GPIO方向


 函数:public String getGpioDirection(String port)<br>

 描述:获取 GPIO 的方向值。<br>

 参数说明:port:GPIO口,具体IO口号参考IO口对应列表;返回值:in:输入;out:输出。<br>

 示例:

```java

 String direction = ZtlManager.GetInstance().getGpioDirection("GPIO7_A5");//direction 为 GPIO7_A5 的方向值

```


 ## 打开器件存储器


 函数:public boolean openZtlI2C(String filePath, int chipID, int addrLen)<br>

 描述:打开器件存储器<br>

 参数说明:filePath:器件存储器节点名称,如:"/dev/i2c-1"<br>

 chipID:写入的i2c器件地址,注意不要跟系统的起冲突,否则会导致系统加密校验失败起不来<br>

 addrLen:写入的地址长度,比如RC16就是1位地址长度(支持读取8位地址,也就是你只能在read接口和write接口参数1里传入0-255),RC128就是2位地址长度.具体看器件文档)<br>

 返回值:true:打开成功;false:打开失败<br>

 备注:这只是个简易接口,如需提高执行效率,推荐使用ZtlI2C类。<br>

 示例:

```java

 boolean openI2C = ZtlManager.GetInstance().openZtlI2C("/dev/i2c-1", 0x30, 1);

//openI2C位打开返回的结果;"/dev/i2c-1"为器件节点名称;0x30为器件地址;1为写入地址位长度

```


 ## 铁电存储器专用写接口


 函数:public void flashWrite(int addr, byte[]data, int nCount)<br>

 描述:铁电存储器专用写接口,使用前需要先调用:openZtlI2C()接口<br>

 参数说明:addr:写入的地址,如:0xa1、0xa2...等<br>

 data:写入内容,如:0x11,0x22,0x33...等<br>

 nCount:写入内容长度,如:1,代表读取存储器长度,需要和写入内容长度一致<br>

 备注:这只是个简易接口,如需提高执行效率,推荐使用ZtlI2C类。<br>

 示例:

```java

 ZtlManager.GetInstance().flashWrite(0xa1, 0x11,1);//往0xa1地址写入0x11,长度为1的内容

```


 ## 铁电存储器专用读接口


 函数:public byte[] flashRead(int addr, int nCount)<br>

 描述:铁电存储器专用读接口,使用前需要先调用:openZtlI2C()接口<br>

 参数说明:addr:读地址,地址长度为1时,请不要传入大于255的值,否则一切后果自负<br>

 nCount:需要读取的内容长度<br>

 备注:这只是个简易接口,如需提高执行效率,推荐使用ZtlI2C类。<br>

 示例:

```java

 byte[] bRead = ZtlManager.GetInstance().flashRead(0xa1, 12);//读取0xa1地址中的12位内容;bRead为读取到的内容

```


 ## 加密芯片专用写接口


 函数:public void chipWrite(int cmd, byte[] data, int nCount)<br>

 描述:加密芯片专用写接口,使用前需要先调用:openZtlI2C()接口<br>

 参数说明:cmd:芯片中程序代码的命令码<br>

 data:数据内容,如:0x11,0x22,0x33...等<br>

 nCount:写入内容长度,如:1,代表读取存储器长度,需要和写入内容长度一致<br>

 备注:这只是个简易接口,如需提高执行效率,推荐使用ZtlI2C类。<br>

 示例:

```java

 ZtlManager.GetInstance().chipWrite(0xb1, 0x11,1);//往0xb1地址写入0x11,长度为1的内容

```


 ## 加密芯片专用读接口


 函数:public byte[] chipRead(int cmd, int ncount)<br>

 描述:加密芯片专用读接口,如果调用写接口后需要马上读取,建议间隔时间为10ms或以上;使用前需要先调用:openZtlI2C()接口<br>

 参数说明:cmd:需要读取的内容,如芯片中代码的命令码,根据命令码返回的数据,如果要直接读取(如上次调用写接口后需要直接获取返回),需要传入-1<br>

 nCount:需要读取的内容长度<br>

 备注:这只是个简易接口,如需提高执行效率,推荐使用ZtlI2C类。<br>

 示例:

```java

 byte[] bRead = ZtlManager.GetInstance().chipRead(0xb1, 12);//读取0xa1地址中的12位内容;bRead为读取到的内容

```


 ## 关闭器件存储器


 函数:public void closeI2C()<br>

 描述:关闭器件存储器<br>

 备注:这只是个简易接口,如需提高执行效率,推荐使用ZtlI2C类。<br>

 示例:

```java

 ZtlManager.GetInstance().closeI2C()//关闭器件存储器

```


 ## 禁止卸载app


 函数:public int setUninstallPackage(String packageS)<br>

 描述:设置后,不可将app拖动至卸载框卸载。<br>

 参数说明:-1:系统不支持;1:设置成功;-2:设置失败;-3:异常错误<br>

 示例:

```java

 int installok = ZtlManager.GetInstance().setUninstallPackage("com.ztl.test");//设置com.ztl.test禁止卸载,installok为返回参数

```


 ## 获取禁止卸载APP的包名


 函数:public String getUninstallPackage()<br>

 描述:获取setUninstallPackage()接口设置的不可卸载app的包名<br>

 参数说明:返回值:禁止卸载app包名;1:系统不支持;error:异常错误<br>

 示例:

```java

 string uninstallpkg = ZtlManager.GetInstance().getUninstallPackage();//uninstallpkg为获取禁止卸载app的包名

```


 ## 获取ADC数值


 函数:public String getADCValue()<br>

 描述:获取ADC数值<br>

 参数说明:返回值:获取到的ADC数值<br>

 示例:

```java

 string ADCValue = ZtlManager.GetInstance().getADCValue();//ADCValue为获取到的ADC数值

```


# 媒体


 ## 获取系统最大音量


 函数:public int getSystemMaxVolume()<br>

 描述:获取 Android 系统最大媒体音量值。<br>

 参数说明:返回值:Android系统最大媒体音量<br>

 示例:

```java

 int maxVolume = ZtlManager.GetInstance().getSystemMaxVolume();//maxVolume 为获取到的 Android 系统最大媒体音量值

```


 ## 获取系统当前音量


 函数:public int getSystemCurrenVolume()<br>

 描述:获取 Android 系统当前媒体音量值<br>

 参数说明:返回值:Android系统当前媒体音量<br>

 示例:

```java

 int currenVolume = ZtlManager.GetInstance().getSystemCurrenVolume();//currenVolume 为获取到的 Android 系统当前媒体音量值

```


 ## 增大音量


 函数:public int setRaiseSystemVolume()<br>

 描述:设置 Android 系统媒体音量值+1<br>

 参数说明:返回值:0:设置成功;-1:设置失败。<br>

 示例:

```java

 //设置 Android 系统媒体音量值+1

 ZtlManager.GetInstance().setRaiseSystemVolume();

```


 ## 降低音量


 函数:public int setLowerSystemVolume()<br>

 描述:设置 Android 系统媒体音量值-1<br>

 参数说明:返回值:0:设置成功;-1:设置失败。<br>

 示例:

```java

 //设置 Android 系统媒体音量-1

 ZtlManager.GetInstance().setLowerSystemVolume();

```


 ## 设置媒体音量值


 函数:public int setSystemVolumeIndex(int index)<br>

 描述:设置 Android 系统媒体音量值<br>

 参数说明:index:设置Android系统媒体音量值。返回值:0:设置成功;-1:设置失败。<br>

 示例:

```java

 //设置 Android 系统媒体音量值为 10

 ZtlManager.GetInstance().setSystemVolumeIndex(10);

```


 ## 设置指定音量的音量值


 函数:public void setVolume(int streamType, int value)<br>

 描述:设置 Android 系统指定音量的音量值<br>

 参数说明:streamType:填入需要调整的音量,如:2:铃声音量  3:媒体音量  4:闹钟音量  value:设置Android系统铃声音量值。<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 示例:

```java

 //设置 Android 系统铃声音量值为 5

 ZtlManager.GetInstance().setVolume(2, 5);

```


 ## 获取指定音量的音量值


 函数:public int getVolume(int streamType)<br>

 描述:获取 Android 系统指定音量的音量值<br>

 参数说明:streamType:填入需要调整的音量,如:2:铃声音量  3:媒体音量  4:闹钟音量<br>

 示例:

```java

 int value = ZtlManager.GetInstance().getVolume(2); //value为获取到的Android系统铃声音量

```


 ## 获取指定音量的最大音量值


 函数:public int getMaxVolume(int streamType)<br>

 描述:获取 Android 系统指定音量的最大音量值<br>

 参数说明:streamType:填入需要调整的音量,如:2:铃声音量  3:媒体音量  4:闹钟音量<br>

 示例:

```java

 int maxValue = ZtlManager.GetInstance().getMaxVolume(2); //maxValue为获取到的Android系统铃声音量

```


 ## 设置相机方向


 函数:public void setCameraOrientation(int orientation)<br>

 描述:仅对 Android 系统相机 app 有效。<br>

 参数说明:orientation:0:0度;90:相机方向顺时针旋转90度;180:相机方向顺时针旋转180度;270:相机方向顺时针旋转270度。<br>

 示例:

```java

 //设置 Android 系统相机方向顺时针旋转 90 度

 ZtlManager.GetInstance().setCameraOrientation(90);

```


 ## 获取相机方向


 函数:public int getCameraOrientation()<br>

 描述:获取系统相机方向<br>

 参数说明:返回值:Android系统相机方向。<br>

 示例:

```java

 int orientation = ZtlManager.GetInstance().getCameraOrientation();//orientation 为 Android 系统相机方向

```


 ## 判断相机是否镜像


 函数:public boolean isCameraMirror()<br>

 描述:判断 Android 系统相机是否镜像<br>

 参数说明:返回值:true:镜像;false:非镜像。<br>

 示例:

```java

 boolean cameraIsMirror = ZtlManager.GetInstance().isCameraMirror();//cameraIsMirror 结果为 Android 系统相机是否镜像

```


 ## 设置相机是否镜像


 函数:public void setCameraMirror(boolean bMisrror)<br>

 描述:设置相机是否镜像<br>

 参数说明:bMisrror:true:镜像;false:非镜像。<br>

 示例:

```java

 //设置 Android 系统相机为镜像

 ZtlManager.GetInstance().setCameraMirror(true);

```


# 其他


 ## 打开性能监控小程序


 函数:public void openMonitor()<br>

 描述:打开性能监控,用于方便检查设备当前状态<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 示例:

```java

 //打开性能监控

 ZtlManager.GetInstance().openMonitor();

```


 ## 获取CPU可用频率


 函数:public String[] getCPUFreq()<br>

 描述:获取 Android 系统 CPU 可用频率<br>

 备注:需系统固件支持。 验证方法见文末附注。<br>

 参数说明:返回值:获取Android系统CPU可用频率。<br>

 示例:

```java

 String[] CPUFreq = ZtlManager.GetInstance().getCPUFreq();// CPUFreq 为CPU可用频率列表

```


 ## 设置CPU频率


 函数:public void setCPUFreq(String cpuFreq)<br>

 描述:设置 Android 系统 CPU 频率<br>

 备注:必须是 getCPUFreq 返回的值其中一个。否则不起作用。设置过低可能会导致系统很卡。<br>

 参数说明:cpuFreq:设置Android系统CPU频率。<br>

 示例:

```java

 //设置CPU频率为108000。

 ZtlManager.GetInstance().setCPUFreq("1008000");

```


# 附注

 ## 需要验证系统是否支持的API验证方法

 1:使用adb命令:adb shell pm path com.ztl.helper<br>

    如果出现:package:/data/app/com.ztl.helper-1/base.apk,或其他路径,则系统支持。<br>

    如果为空,请联系厂家技术支持。


志刚 研发-王 更新于 将近 3 年 之前 · 2 修订