Подключение
В корневом каталоге Android-проекта в файле build.gradle добавьте:
allprojects {
repositories {
...
maven { url 'https://www.jitpack.io' }
}
}
В файл build.gradle приложения добавьте:
dependencies {
// Несколько классов с инструментами для интернета вещей
implementation 'com.github.wave-chtj:BaseIotUtils:2.6.1'
}
Пользовательское приложение
// Описание функций каждого модуля библиотеки можно посмотреть на странице ниже
// Не забудьте использовать это пользовательское приложение в Manifest
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
//① base_iotutils — класс с базовыми инструментами для IoT
BaseIotUtils.instance().
setAdaptation(1080, 1920, BaseIotUtils.WIDTH,true).
create(getApplication());
}
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
Скриншоты приложения
Рисунок | Описание |
---|---|
[Рисунок 1] | |
[Рисунок 2] |
Класс base_iotutils с описанием инструментов
Номер | Инструмент | Название | Функция |
---|---|---|---|
01 | AudioUtils | Управление аудио | Воспроизведение, продолжение, пауза |
02 | AppsUtils | Инструменты для приложений | Поиск приложений и информация о приложениях |
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 | Уведомления | Пользовательские уведомления, динамическая настройка параметров |
18 | NetUtils | Сетевые инструменты | Тип сети, состояние и т. д. |
19 | NetMonitorUtils | Широковещательные уведомления об изменениях в сети | Обратные вызовы при изменении сети |
20 | ObjectUtils | Общие инструменты для работы с объектами | Проверка на пустоту, сравнение, случайность |
21 | PermissionsUtils | Запрос разрешений | Множественные разрешения |
22 | RegularTools | Регулярные выражения | Результаты регулярных выражений |
23 | SerialPort/SerialPortFinder | Последовательный порт | Открытие, связь, закрытие |
24 | SPUtils | Хранилище | SharedPreferences чтение и запись |
25 | ShellUtils | Adb | Выполнение команд adb |
26 | ServiceUtils | Управление службами | Запуск, остановка, проверка активности и т. д. |
27 | StatusBarUtils | Иммерсивная строка состояния | Изменение цвета строки состояния |
28 | ToastUtils | Системный Toast | Успех, неудача, предупреждение и т. д. |
29 | TimeUtils | Время | Преобразования даты и времени |
30 | TPoolSingleUtils/TPoolUtils | Управление пулом потоков | Повторное использование потоков |
31 | UriPathUtils | URI в реальный путь | Преобразование URI в Android 7.0 |
32 | ZipUtils | Сжатие | Сжатие, распаковка, пакетная обработка и т. д. |
Использование инструментов класса base_iotutils и изображения
//@filePath — путь к файлу, например /sdcard/config.txt
//@content — содержимое для записи
//@isCover — перезаписывать ли содержимое файла
boolean writeResult = FileUtils.writeFileData(filePath, content, true);
``` **Инструменты и библиотеки**
* **Класс инструментов:** «Файл, сжатие, загрузка файлов, управление журналами, управление временем, сетевые решения и т. д.»
* Это библиотека...
* 18 марта 2020 года
* Ложно
* Истинно)
```
.exeuNotify();
} else {
// Открыть уведомление
NotifyUtils.toOpenNotify();
}
// Изменить часть содержимого
NotifyUtils.setAppName("");
NotifyUtils.setAppAbout("");
NotifyUtils.setRemarks("");
NotifyUtils.setPrompt("");
NotifyUtils.setDataTime("");
// Закрыть это уведомление
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);
// Прочитать команду
// Можно использовать метод readInputStreamData(int flag) в SerialPortHelper для чтения данных, здесь используется чтение по одному байту за раз
// Или используйте метод 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 успешно");
}else{
Log.e(TAG, "commResult exeu не удалось errMeg="+commResult.errorMsg);
}
AppsUtils: инструменты
Использование:
AppsUtils.getSystemAppList();// Список системных приложений на телефоне
AppsUtils.getDeskTopAppList();// Список всех приложений на рабочем столе
AppsUtils.getNormalAppList();// Список несистемных приложений на телефоне
AppsUtils.getMainIntent();// Получить главный экран определённого приложения
AppsUtils.isAppRunning();// Определить, работает ли приложение по имени пакета
AppsUtils.startApp();// Запустить приложение по имени пакета и перейти на главный экран
AppsUtils.getAppName();// Получить имя текущего приложения
AppsUtils.getPidByPackageName();// Получить PID процесса по имени пакета
AppsUtils.getAppVersionCode();// Получить код версии приложения
AppsUtils.getAppVersionName();// Получить название версии приложения
AppsUtils.isAppForeground();// Определить, находится ли приложение на переднем плане
AppsUtils.getAppPath();// Получить путь установки приложения
PermissionsUtils: запрос разрешений
Использование:
PermissionsUtils.with(mContext).
``` ```
addPermission(Manifest.permission.ACCESS_FINE_LOCATION).
addPermission(Manifest.permission.ACCESS_COARSE_LOCATION).
addPermission(Manifest.permission......).
initPermission();
Информация о локальном устройстве (сеть, пространство устройства и т. д.) Упрощён процесс передачи параметров в классе DownloadSupport, можно самостоятельно определять информацию для каждой задачи загрузки. Системные API-вызовы, например, связанные с сетью или пространством.
Межпроцессное сохранение активности Service/Activity. Оптимизация использования некоторых классов инструментов.
Добавлен аудиоплеер PlayUitls с управлением состояниями. DwonloadSupport — новый класс инструментов для управления многозадачной загрузкой. Сбор данных о воспроизведении видео. Удалены инструменты для сохранения активности сервисов и оригинальный класс инструментов загрузки. Добавлено управление приложениями в системе через PackagesUtils. Улучшен интерфейс приложения, включая использование операций. Добавлена функция таймера: обратный отсчёт, счётчик и т.д. Собраны данные greenDAO для удобства последующего использования, операции с SQLite стали более удобными.
Оптимизированы и добавлены некоторые классы инструментов. Обработка оптимизации при запуске приложения.
Проект оптимизирован. Основные классы инструментов собраны и интегрированы.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )