# AutoTest **Repository Path**: jerrycheung/auto-test ## Basic Information - **Project Name**: AutoTest - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-07 - **Last Updated**: 2025-03-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #查看对应的文档内容来说明 1. 调用个对应系统接口定义 I.使用对应的android.app.SystemManager接口文件 > 获取对应的SystemManager接口 SystemManager systemManager =(SystemManager) context.getSystemService("system_manager"); //该接口获取方式 II.接口说明 >1.getMotherBoardModel() [获取主板名称]; >2.getSerialNumber() [获取设备序列号] >3.SystemManager.execCommand(cmd) [执行对应的shell命令] //cmd: 执行的命令 >4.onReboot() [重启设备] >5.shutdown() [关机设备] >6.startApplication(context,packageName) [启动应用] //context上下文, packageName对应的包名 >7.setDateTime(year, month, day, hour, minute) [设置时间] >8.setNavigationAndStatusBar( context , type, status )[设置导航栏和状态栏] //context上下文, type:1.导航栏 2.状态栏 , status : ture显示false隐藏 >9.lightingOperation( type, value)[灯光操作] //type类型:1.摄像头白光灯补光灯 2.摄像头红外灯控制 3.背光控制 value: 灯光值0-255 >10.installPackage(path) [安装应用] //path 路径 >11 uninstallPackage (packageName) [卸载应用] //packageName 包名 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ I.使用对应的GPIO口接口 引用对应的android.os.GpioControlManager.java接口 > 获取对应的GpioControlManager接口 GpioControlManager gpioControlManager = (GpioControlManager)context.getSystemService("gpio_control_service"); > 操作Gpio口控制流程 > 1. 获取Gpio句柄值,该值为全局控制gpio管理值 int gpioHandler = gpioControlManager.GpioOpenNode(); //如果gpioHandler 大于0则获取的句柄正常gpio口控制正常. 反复则失败无法操作gpio口控制. > 2. 操作具体IO口控制 gpioControlManager.RequestGpio(gpioHandler,gpioPoint); //1. 先申请对应的GpioPoint指定的IO口申请,对应的申请值大于0,申请正常,否则申请失败无法操作具体IO口控制 gpioControlManager.SetDirectionGpio(gpioHandler,gpioPoint,direction_in);//设置IO口控制方向,指定对应的IO为输入还是输出操作, 执行direction_in 分别为0,1值. > 3. 控制具体IO口操作 gpioControlManager.SetValueGpio(gpioHandler,gpioPoint,value); //设置指定gpioPoint口控制,指定对应的value值为高和低分别为0,1值. int result = gpioControlManager.GetValueGpio(gpioHandler, gpioPoint); //获取对应的指定gpio口的value值,返回为高或者低分别为0,1值. > 4. 释放资源接口 gpioControlManager.FreeGpio(gpioHandler,gpioPoint); //释放指定对应的IO口资源 gpioControlManager.GpioColseNode(gpioHandler); //关闭Gpio口操作 > 5. GpioPoint指定IO口说明 418; //锁状态信息值 外部电磁锁状态输入 对应的方向为:0(输入 获取对应的值) 417; //push开关状态值 外部PUSH检测输入 获取锁的状态:0 422; //看门狗 MCU_心跳输出 看门狗 : 1(输入 设置对应的值) 421; //人体感应模块 MCU_PIR输入检测 控制红外状态: 0 420; // 开门锁 MCU_PUSH输出控制 控制锁的状态: 1 433; // 防拆 外接串口 防拆 : 0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ I.使用对应的RfidControlManager接口 引用对应android.os.RfidControlManager.java接口来完成对应的NFC刷卡业务 > 获取对应的RfidControlManager接口 RfidControlManager rfidControlManager = (RfidControlManager) getSystemService("rfid_service"); > 操作Rfid控制流程 > 1.获取读卡节点节点句柄,调用对应的函数 int rfidHandler = rfidControlManager.ReadCardOpen("/dev/pn512"); //如果对应的值大于0则可以是使用,否则不能使用 > 2.读卡操作 byte[] cardBuffer = new byte[32];//读卡的缓冲区,读卡的信息内容 TYPE = 0 ,1 //读卡的类型为0和1, int result = rfidControlManager.RfidReadSn(rfidHandler,TYPE,cardBuffer); //读卡操作,先读TYPE 0卡, 如果返回大于0则读取正常,否则不正常,然后再读TYPE 1卡,返回结果一致. > 3.释放读卡资源 rfidControlManager.ReadCardClose(rfidHandler); 对应的cardBuffer对应的数据说明 第一位:卡长度 第二位:卡类型 第三位:卡子类型 第四位起:卡数据 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ I.韦根WiegandCardManager接口 ,引用对应的android.os.WiegandCardManager.java接口 > 获取对应的韦根WiegandCardManager接口接口 韦根WiegandCardManager接口 manager = new 韦根WiegandCardManager(); > 操作韦根流程控制 > 1.读操作 ----请放置在单独的线程中使用 long card = manager.wiegandRead() ; //读卡操作,返回并是阻塞式的,只有读到了就会执行 > 2.写操作 manager.wiegandWrite(cmd,cards) ; cmd命令类型 1. wg_26 2.wg_34 3.wg_66 4.period 5. pluse 后面是对应的类型 卡号转化对应于的二进制 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3.系统本地服务接口说明 >1.获取屏幕旋转角度 Settings.System.getInt(getContentResolver(), Settings.System.USER_ROTATION, -1) 对应的Surface.ROTATION_0 90 180 270值 需要配置对应的android:sharedUserId="android.uid.system",并系统签名. >2.设置屏幕旋转角度 Settings.System.putInt(getContentResolver(), Settings.System.USER_ROTATION, Surface.ROTATION_90)//值和上面对应 需要配置对应的android:sharedUserId="android.uid.system",并系统签名. >3.以太网操作 更具EthernetManager来设置操作对应的以太网( 添加对应的权限并配置对应的 android:sharedUserId="android.uid.system" 使用系统签名的方式获取权限使用) IpGetUtil.getIpAddress(context);//获取网络IP信息 设置DHCP自动获取对应IP boolean success = IpGetUtil.setEthernetIP(MainActivity.this, "DHCP","", "", "", "", ""); 设置Static固定IP boolean success2 = IpGetUtil.setEthernetIP(MainActivity.this, "STATIC","192.168.2.168", "255.255.255.0","192.168.2.1", "4.4.4.4", "114.114.114.114"); 网络的状态金婷对应的Broadcast广播监听ConnectivityManager.CONNECTIVITY_ACTION 通过对应的来获取对应的网络状态 ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mobileNetInfo = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); NetworkInfo wifiNetInfo = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI); NetworkInfo ethernetInfo = cm.getNetworkInfo(ConnectivityManager.TYPE_ETHERNET); NetworkInfo allNetInfo = cm.getActiveNetworkInfo(); >4.OTA升级操作 引用libotaupdate.jar升级包来操作对应的升级 OtaUpgradeUtils mOtaHelp = new OtaUpgradeUtils(mContext); mOtaHelp.upgrade(new File(file.getPath()), new ProgressListener() { @Override public void onProgress(int i) { } @Override public void onVerifyFailed(int i, Object o) { logI(String.format("ota update fail:verify.%d", i)); } @Override public void onCopyProgress(A @Override public void onCopyFailed(int i, Object o) { logI(String.format("ota update fail:copy.%d", i)); } @Override public void onStopProgress(int i) { } }, OtaUpgradeUtils.UPDATE_OTA); >5.控制LED灯 通过对应的LedControlJni来实现对应的控制 RgbLedLightManager int handler = openDevice();//初始化对应的,返回对应的handler句柄 writeColor(int handler, int red,int green, int blue,int v,int flag); //handler , red 0-255, green 0-255, blue 0-255 v: 电压大小0-3 flag : 0 releaseDevice(handler); //释放对应的资源