Skip to content

🔥🔥串口工具,通知工具,网络监听,多文件断点下载,xls,xlsx操作,APK安装/系统应用安装,文件处理,crash控制,音视频播放,usb设备检测,adb工具等...

Notifications You must be signed in to change notification settings

ichtj/BaseIotUtils

Repository files navigation

接入方式

Android 项目根目录下文件 build.gradle 中添加

allprojects {
	repositories {
		...
		maven { url 'https://www.jitpack.io' }
	}
}

在App的build.gradle文件中添加

base_iotutils 物联基础工具类

dependencies {
         //多个物联网相关基础工具类
         implementation 'com.github.wave-chtj:BaseIotUtils:2.6.1'
}

自定义 Application

//每个Module library功能描述可在页面下方查看
//别忘了在 Manifest 中通过使用这个自定义的 Application,这里有各个library的初始化
public class App extends Application {

  @Override
  public void onCreate() {
    super.onCreate();
    //① base_iotutils 物联基础工具类
    BaseIotUtils.instance().
                    setAdaptation(1080, 1920, BaseIotUtils.WIDTH,true).
                    create(getApplication());
  }

  @Override
  protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
  }
}

app 界面截图

[图一]

image

[图二]

image

base_iotutils 物联基础工具类说明

编号 工具类 工具名称 实现功能
01 AudioUtils 音频管理 播放继续暂停
02 AppsUtils App的相关工具 查询应用以及 app 的信息
03 AdaptationUtils 屏幕适配 pt 单位适配
04 TranscodingUtils 编码转换工具类 10/16/ascii,字节数组等相互转换
05 DownloadUtils 多任务下载管理 下载,暂停,状态回调
06 DisplayUtils 屏幕相关 屏幕信息获取(高宽像素等)
07 DialogUtils 对话框相关 普通对话框、带输入框对话框
08 DeviceUtils 设备的相关信息 设备出厂自带参数
09 EncryptUtils 加密工具类 获取字符串,文件MD5
10 FileUtils 文件工具类 写入/读取文件相关信息
11 FormatViewsUtils 文本滚动工具 TextView滚动最新一行
12 GlobalDialogUtils 应用上层弹窗 SYSTEM_ALERT_WINDOW
13 HttpUtils 网络请求工具类 get,post请求
14 JsonFormatUtils JSON格式化工具 JSON字符串格式化
15 KLog 日志打印 日志标记打印
16 KeyBoardUtils 软键盘管理 打开,关闭
17 NotifyUtils 通知工具类 自定义 notification,动态调参
18 NetUtils 网络工具类 网络类型/状态等获取
19 NetMonitorUtils 网络变化广播 网络变化回调
20 ObjectUtils 通用对象管理工具 判空,比较,随机
21 PermissionsUtils 权限申请工具类 多权限申请
22 RegularTools 正则工具类 通用正则结果获取
23 SerialPort/SerialPortFinder 串口相关工具类 打开,通讯,关闭
24 SPUtils 存储工具类 SharedPreferences 读写
25 ShellUtils adb 相关工具类 adb 命令执行
26 ServiceUtils Service 管理工具 启动,停止,判断存活等
27 StatusBarUtils 沉浸式状态栏 状态栏变色
28 ToastUtils 系统的 Toast 封装 成功,失败,警告等提示
29 TimeUtils 时间工具类 Date 时间日期转换
30 TPoolSingleUtils/TPoolUtils 线程池管理 线程重用
31 UriPathUtils Uri 转真实路径 android7.0uri 转换
32 ZipUtils 压缩相关 压缩解压,批量等

base_iotutils 工具调用方式,及图片展示

FileUtils 文件操作 读写,删除,文件大小等

        //@filePath 文件路径 例如/sdcard/config.txt
        //@content 写入内容
        //@isCover 是否覆盖这个文件里的内容
        boolean writeResult = FileUtils.writeFileData(filePath, content, true);
        //读取filePath文件中的内容
        String readResult = FileUtils.readFileData(filePath);
        //更多文件操作方法请查询FileUtils中的内容

KeyBoardUtils 软键盘管理

       //打卡软键盘
       KeyBoardUtils.openKeybord(editeTextView);

       //关闭软键盘
       KeyBoardUtils.closeKeybord(editeTextView);

NetUtils 网络工具类

        //得到网络类型 NETWORK_NO,NETWORK_WI,NETWORK_2G,NETWORK_3G,NETWORK_4G,NETWORK_UN,NETWORK_ETH
        NetUtils.getNetWorkType();
        //得到网络类型字符串
        NetUtils.getNetWorkTypeName();
        //判断网络连接是否可用
        NetUtils.isNetworkAvailable();
        //判断网络是否可用
        NetUtils.isAvailable();
        //判断网络是否连接
        NetUtils.isConnected();
        //ping网络 不要在主线程使用,会阻塞线程
        NetUtils.ping();
        //ping 网络 不要在主线程使用,会阻塞线程
        NetUtils.reloadDnsPing();
        //判断WIFI是否打开
        NetUtils.isWifiEnabled();
        //判断网络连接方式是否为WIFI
        NetUtils.isWifi();
        //判断网络连接方式是否为ETH
        NetUtils.isEth();
        //判断wifi是否连接状态
        NetUtils.isWifiConnected();
        //判断是否为3G网络
        NetUtils.is3rd();
        //判断网络是否是4G
        NetUtils.is4G();
        //GPS是否打开
        NetUtils.isGpsEnabled();
        //打开网络设置界面
        NetUtils.openWirelessSettings();
        //获取活动网络信息
        NetUtils.getActiveNetworkInfo();
        //获取移动网络运营商名称 如中国联通、中国移动、中国电信
        NetUtils.getNetworkOperatorName();

DownloadSupport 多任务下载 任务各自独立

image

        //①初始化下载工具类
        DownloadUtils downloadSupport=new DownloadUtils();

        //---------------------------任务1--------------------------------
        FileCacheData fileData = new FileCacheData();
        fileData.setUrl(downloadUrl);
        fileData.setFileName(fileName1);
        fileData.setRequestTag(downloadUrl);
        fileData.setFilePath("/sdcard/" + fileName1);

        //---------------------------任务2--------------------------------
        FileCacheData fileCacheData2 = new FileCacheData();
        fileCacheData2.setUrl(downloadUrl2);
        fileCacheData2.setFileName(fileName2);
        fileCacheData2.setRequestTag(downloadUrl2);
        fileCacheData2.setFilePath("/sdcard/" + fileName2);



        //开启任务下载 下载文件信息1
        downloadSupport.addStartTask(fileData, downloadCallBack);
         //开启任务下载 下载文件信息2
        downloadSupport.addStartTask(fileCacheData2, downloadCallBack);
        //-----------------------------------------------------------

        //下载进度
        //多个任务使用同一个DownloadCallBack 可根据设置的requestTag来区分属于哪个下载进度 fileData.getRequestTag()
        IDownloadCallback downloadCallBack = new IDownloadCallback() {
            @Override
            public void download(FileCacheData fileData, int percent, boolean isComplete) {
                Message message1 = handler.obtainMessage();
                message1.obj = fileData;
                message1.arg1 = percent;
                handler.sendMessage(message1);
            }

            @Override
            public void error(Exception e) {
                KLog.d(TAG, "error:>errMeg=" + e.getMessage());
            }

            @Override
            public void downloadStatus(String requestTag, DownloadStatus downloadStatus) {
                KLog.d(TAG, "downloadStatus:>requestTag =" + requestTag + ",status=" + downloadStatus.name());
            }
        };

        //暂停所有任务
        downloadSupport.pause();
        //暂停单个任务
        downloadSupport.pause(fileCacheData2.getRequestTag());

        //全部关闭
        downloadSupport.cancel();

NotificationUtils 通知栏通知工具类使用

     //获取系统中是否已经通过 允许通知的权限
     if (NotifyUtils.notifyIsEnable()) {
         NotifyUtils.setNotifyId(111).setEnableCloseButton(false)//设置是否显示关闭按钮
                 .setOnNotifyLinstener(new OnNotifyLinstener() {
                     @Override
                     public void enableStatus(boolean isEnable) {
                         KLog.e(TAG, "isEnable=" + isEnable);
                     }
                 })
                 .setNotifyParam(R.drawable.ic_launcher, R.drawable.app_img
                         , "BaseIotUtils"
                         , "工具类"
                         , "文件压缩,文件下载,日志管理,时间管理,网络判断。。。"
                         , "this is a library ..."
                         , "2020-3-18"
                         , false
                         , true)
                 .exeuNotify();
     } else {
         //去开启通知
         NotifyUtils.toOpenNotify();
     }
     //更改部分内容
     NotifyUtils.setAppName("");
     NotifyUtils.setAppAbout("");
     NotifyUtils.setRemarks("");
     NotifyUtils.setPrompt("");
     NotifyUtils.setDataTime("");
     //关闭此notification
     NotifyUtils.closeNotify();

PlayUtils 音频播放

      //开始播放
      AudioUtils.getInstance().
         setPlayStateChangeListener(new PlayUtils.PlayStateChangeListener() {

             @Override
             public void onPlayStateChange(PlayUtils.PLAY_STATUS play_status) {
                 //获取当前状态PLAY, RESUME, PAUSE, STOP, NONE
                 KLog.d(TAG," play_status= "+play_status.name());
             }

             @Override
             public void getProgress(int sumProgress, int nowProgress) {
                 //sumProgress 总时长  nowProgress 当前时长
                 KLog.d(TAG, " sumProgress= " + sumProgress + ",nowProgress= " + nowProgress);
             }

         }).
         startPlaying("/sdcard/ding.wav");//文件地址

      //暂停播放
      AudioUtils.getInstance().pausePlay();

      //继续播放
      AudioUtils.getInstance().resumePlay();

      //停止播放
      AudioUtils.getInstance().stopPlaying();

NetMonitorUtils 网络监听者

     //注册广播
     NetMonitorUtils.register();
     //设置监听 NetTypeInfo (NETWORK_2G,NETWORK_3G,NETWORK_4G,NETWORK_WIFI,NETWORK_ETH,NETWORK_NO,NETWORK_UNKNOWN)
     NetMonitorUtils.addCallBack(new INetChangeCallBack() {
         @Override
         public void netChange(int netType, boolean pingResult) {
             tvType.setText("" + netType);
             tvStatus.setText("" + pingResult);
         }
     });
     .......
     //注销广播
     NetMonitorUtils.removeCallback(this);
     NetMonitorUtils.unRegister();

SerialPort|SerialPortFinder 串口封装类

        //获得串口地址
        SerialPortFinder mSerialPortFinder = new SerialPortFinder();
        String[] entryValues = mSerialPortFinder.getAllDevicesPath();
        //根据串口地址和波特率开启串口
        SerialPort port =  null;
        int baudrate=9600;//波特率 请自行选择所需波特率
        try{
            //entryValues[xxx] 中保存了一些串口地址 请自行选择
            port=new SerialPort(new File(entryValues[xxx]), baudrate,0);
            Log.e(TAG,"开启成功");
        }catch(Exception e){
            e.printStackTrace();
            Log.e(TAG,"errMeg:"+e.getMessage());
        }

        //写命令
        port.write(command);
        //读命令
        //可根据SerialPortHelper中的readInputStreamData(int flag)方法读取数据,这里是一个一个字节读取
        //亦或用port中的read方法一次读取,如果数据量大可能存在粘包
        port.read(byte[] buff,int lenght);
        //关闭串口
        port.close();

ShellUtils adb 操作工具类

使用方式

        //单条命令执行
        ShellUtils.CommandResult commResult=ShellUtils.execCommand("reboot",true);
        //多条命令执行
        //ShellUtils.CommandResult commResult2=ShellUtils.execCommand(new String[]{"comm1","comm2","comm3","commN..."},true);
        if(commResult.result==0){
            Log.e(TAG, "commResult2 exeu successful");
        }else{
            Log.e(TAG, "commResult exeu faild errMeg="+commResult.errorMsg);
        }

AppsUtils 工具类

使用方式

        AppsUtils.getSystemAppList();//查询手机内系统应用
        AppsUtils.getDeskTopAppList();//查询桌面所有应用
        AppsUtils.getNormalAppList();//查询手机内非系统应用
        AppsUtils.getMainIntent();//获取某个应用的主界面
        AppsUtils.isAppRunning();//根据包名获取APP是否正在运行
        AppsUtils.startApp();//根据包名获取启动该app的主界面
        AppsUtils.getAppName();//获取当前应用名称
        AppsUtils.getPidByPackageName();//根据包名获取进程PID
        AppsUtils.getAppVersionCode();//获取APP-VersionCode
        AppsUtils.getAppVersionName();//获取APP-VersionName
        AppsUtils.isAppForeground();//判断 App 是否处于前台
        AppsUtils.getAppPath();//获取app安装路径

PermissionsUtils 权限申请工具类

使用方式

        PermissionsUtils.with(mContext).
            addPermission(Manifest.permission.ACCESS_FINE_LOCATION).
            addPermission(Manifest.permission.ACCESS_COARSE_LOCATION).
            addPermission(Manifest.permission......).
            initPermission();

Version Code

v1.1.0

> 本机信息展示(网络,设备空间等)
> 下载工具类 DownloadSupport参数传递更方便,可自行定义每个下载任务的信息
> 系统API调用,例如网络相关,空间相关等

v1.0.9

> 跨进程保活 Service/Activity
> 优化部分工具类使用

v1.0.8

> 新增了 PlayUitls 音频播放器(状态管理)
> DwonloadSupport(全新的多任务下载管理工具类)
> 视频播放管理收集
> 删除了服务保活工具,删除了原始的下载工具类
> 添加了对该系统内的应用的管理,查看 PackagesUtils
> 优化该 app 界面,使用操作等
> 定时器功能添加 倒计时,计时器等
> 收集 greenDAO(收集整合,方便后期使用),封装(Sqlite)操作更加方便

v1.0.3

> 优化各个工具类
> 新增部分工具类
> 添加启动应用时的优化处理

v1.0.2

> 项目优化
> 基本工具类的收集整合

About

🔥🔥串口工具,通知工具,网络监听,多文件断点下载,xls,xlsx操作,APK安装/系统应用安装,文件处理,crash控制,音视频播放,usb设备检测,adb工具等...

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages