• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

BaseIotUtils:

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

BaseIotUtils

开源软件地址:

https://gitee.com/wave-chtj/BaseIotUtils

开源软件介绍:

注:项目中存在的多个Module已经进行模块转移,如需调用,请按以下方式调用

BaseFramework Framework API调用 点我

BaseKeepAlive Activity|Service保活 点我

BaseSocket Socket TCP|UDP 点我

接入方式

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

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

在App的build.gradle文件中添加

base_iotutils 物联基础工具类

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

自定义 Application

//每个Module library功能描述可在页面下方查看//别忘了在 Manifest 中通过使用这个自定义的 Application,这里有各个library的初始化public class App extends Application {  @Override  public void onCreate() {    super.onCreate();    //① base_iotutils 物联基础工具类    BaseIotUtils      .instance()      .setBaseScreenParam(1080, 1920, true)      .setCreenType(SCREEN_TYPE.WIDTH)      .create(getApplication()); //按照宽度适配  }  @Override  protected void attachBaseContext(Context base) {    super.attachBaseContext(base);    MultiDex.install(this);  }}

app 界面截图

image

base_iotutils 物联基础工具类说明

编号工具类工具名称实现功能
1ZipUtils压缩相关压缩解压,批量等
2UriPathUtilsUri 转真实路径android7.0uri 转换
3ToastUtils系统的 Toast 封装成功,失败,警告等提示
4TimeUtils时间工具类Date 时间日期转换
5ISysDialog应用上层弹窗SYSTEM_ALERT_WINDOW
6SPUtils存储工具类SharedPreferences 读写
7ShellUtilsadb 相关工具类adb 命令执行
8ServiceUtilsService 管理工具启动,停止,判断存活等
9PermissionsUtils权限申请工具类多权限申请
10KLog日志打印日志标记打印
11KeyBoardUtils软键盘管理打开,关闭
12FileUtils文件工具类写入/读取文件相关信息
13DeviceUtils设备的相关信息设备出厂自带参数
14DataConvertUtils进制转换工具类10/16 进制,字节数组等相互转换
15ScheduledTPoolUtils/TPoolUtils线程池管理线程重用
16SerialPort/SerialPortFinder串口相关工具类打开,通讯,关闭
17AdaptScreenUtils屏幕适配pt 单位适配
18NotifyUtilsnotification自定义 notification,动态调参
19NetUtils网络工具类网络类型/状态等获取
20NetListenerUtils网络变化广播网络变化回调
22DownloadSupport多任务下载管理下载,暂停,状态回调
23PlayUtils音频管理播放继续暂停
24AppsUtilspp 的相关查询应用以及 app 的信息
25ScreenInfoUtils屏幕相关屏幕信息获取(高宽像素等)
26StatusBarUtil沉浸式状态栏状态栏变色

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();        //判断是否有外网连接(普通方法不能判断外网的网络是否连接,比如连接上局域网)不要在主线程使用,会阻塞线程        NetUtils.ping();  NetUtils.ping(int count,int time); NetUtils.ping(String ip);        //判断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();        //获取移动终端类型 0 手机制式未知 1 手机制式为GSM,移动和联通 2 手机制式为CDMA,电信 3        NetUtils.getPhoneType();

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

image

        //①初始化下载工具类        DownloadSupport downloadSupport=new DownloadSupport();        //---------------------------任务1--------------------------------        FileCacheData fileCacheData = new FileCacheData();        fileCacheData.setUrl(downloadUrl);        fileCacheData.setFileName(fileName1);        fileCacheData.setRequestTag(downloadUrl);        fileCacheData.setFilePath("/sdcard/" + fileName1);        //---------------------------任务2--------------------------------        FileCacheData fileCacheData2 = new FileCacheData();        fileCacheData2.setUrl(downloadUrl2);        fileCacheData2.setFileName(fileName2);        fileCacheData2.setRequestTag(downloadUrl2);        fileCacheData2.setFilePath("/sdcard/" + fileName2);        //开启任务下载 下载文件信息1        downloadSupport.addStartTask(fileCacheData, downloadCallBack);         //开启任务下载 下载文件信息2        downloadSupport.addStartTask(fileCacheData2, downloadCallBack);        //-----------------------------------------------------------        //下载进度        //多个任务使用同一个DownloadCallBack 可根据设置的requestTag来区分属于哪个下载进度 fileCacheData.getRequestTag()        DownloadSupport.DownloadCallBack downloadCallBack = new DownloadSupport.DownloadCallBack() {            @Override            public void download(FileCacheData fileCacheData, int percent, boolean isComplete) {                Message message1 = handler.obtainMessage();                message1.obj = fileCacheData;                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.getInstance("xxid")                 .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.getInstance("xxid").setAppName("");     NotifyUtils.getInstance("xxid").setAppAbout("");     NotifyUtils.getInstance("xxid").setRemarks("");     NotifyUtils.getInstance("xxid").setPrompt("");     NotifyUtils.getInstance("xxid").setDataTime("");     //关闭此notification     NotifyUtils.closeNotify();

PlayUtils 音频播放

      //开始播放      PlayUtils.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");//文件地址      //暂停播放      PlayUtils.getInstance().pausePlay();      //继续播放      PlayUtils.getInstance().resumePlay();      //停止播放      PlayUtils.getInstance().stopPlaying();

NetListenerUtils 网络监听者

     //注册广播     NetListenerUtils.getInstance().registerReceiver();     //设置监听 NetTypeInfo (NETWORK_2G,NETWORK_3G,NETWORK_4G,NETWORK_WIFI,NETWORK_ETH,NETWORK_NO,NETWORK_UNKNOWN)     NetListenerUtils.getInstance().setOnNetChangeLinstener(new OnNetChangeLinstener() {         @Override         public void changed(NetTypeInfo type, boolean isNormal) {             //isNormal 网络经过ping后 true为网络正常 false为网络异常             KLog.e(TAG, "network type=" + type.name() + ",isNormal=" + isNormal);             tvType.setText("" + type.name());             tvStatus.setText("" + isNormal);         }     });     .......     //注销广播     NetListenerUtils.getInstance().unRegisterReceiver();

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 是否处于前台

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

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

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap