ARMT系统SDK使用方法 - 大白社区
- 发帖时间:
- 2023-04-29 13:57:26
摘要:介绍下ARMT平台下SDK的使用说明Android系统版本:Android 7.1 Android 12jdk-18.0.2在build.gradle 的dependencies中添加jar包//ARMT SDKAPP开发中会遇到很多读取控制设备的场景,有了官方提供的API方便很多。armtsdkapi.jar 包中还有很多API可以调用, 这篇文章介绍最基本的API使用方法。
文章目录
前言
介绍下ARMT平台下SDK的使用说明
一、环境介绍
- Android
系统版本:Android 11
Android Studio Electric Eel | 2022.1.1jdk-18.0.2
二、设备介绍
三、使用步骤
1.引入库
在build.gradle 的dependencies中添加jar包
//ARMT SDK
implementation files('libs/armtsdkapi.jar')
2.初始化SDK
在Activity中初始化,直接new DeviceManager()后不能马上调用其方法,因为初始化需要时间,建议开线程操作,否则会卡顿。
new Thread(new Runnable() {
@Override
public void run() {
mDeviceManager = new DeviceManager(BaseActivity.this);
}
}).start();
/**
* new DeviceManager()后立即使用里面的函数没有效果,因为初始化需要时间.
* 可以设置服务监听,当服务创建完成时会回调 ,或者延迟调用
*/
//mDeviceManager.setOnServiceConnectedListener(this);
3.API使用说明
//全屏
mDeviceManager.forceFullScreen(true);
//获取屏幕背光亮度
mDeviceManager.getBrightness();
//设置屏幕背光亮度
mDeviceManager.setBrightness(b);
//获取屏幕状态, 开启/关闭
mDeviceManager.getDisplayStatus();
//设置屏幕状态
mDeviceManager.setDisplayStatus(true);
//显示导航栏
mDeviceManager.showNavigationBar();
//隐藏导航栏
mDeviceManager.removeNavigationBar();
//显示状态栏
mDeviceManager.showStatusBar();
//隐藏状态栏
mDeviceManager.removeStatusBar();
//声音输出设置 codec:默认,板上codec和喇叭输出 usb:外接usb声卡输出
mDeviceManager.setAudioOutput("codec");
//检测网络是否可用
mDeviceManager.isNetworkConnected();
//网络类型
mDeviceManager.getNetworkType();
//获取IP地址
mDeviceManager.getLocalIpAddress();
//以太网MAC地址
mDeviceManager.getEthernetMacAddress();
//WIFI MAC地址
mDeviceManager.getWifiMacAddress();
//读文件(system权限) 参数需根据需求修改
mDeviceManager.readFile("/sdcard/system/build.prop", 0, 100);
//写文件(system权限) 参数需根据需求修改
mDeviceManager.writeFile("/sdcard/system/build.prop", 0, new byte[0]);
//CPU名字
mDeviceManager.getCpuName();
//当前CPU温度
mDeviceManager.getCpuThermal();
//设备内存
mDeviceManager.getTotalMemory();
//可用内存
mDeviceManager.getMemoryAvail();
//设备名
mDeviceManager.getDeviceName();
//序列号
mDeviceManager.getDeviceSerial();
//内核版本
mDeviceManager.getKernelVersion();
//系统版本
mDeviceManager.getSystemVersion();
//android版本
mDeviceManager.getAndroidVersion();
//关闭系统
mDeviceManager.shutdown(true);
//重启系统
mDeviceManager.reboot(true, "测试重启!");
//系统休眠
mDeviceManager.goToSleep();
//系统唤醒
mDeviceManager.wakeUp();
//静默安装apk
mDeviceManager.installPackage(new File("").getAbsolutePath(), "包名");
//静默安装并重启
mDeviceManager.installPackageLaunch(new File("").getAbsolutePath(), "包名");
//卸载apk packageName: 包名 keepdata:是否保持app数据
mDeviceManager.uninstallPackage(getPackageName(), false);
4.完整代码及链接
package com.armt.sdktest_armt;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import com.armt.sdktest_armt.displays.PresentationActivity;
import com.armt.sdktest_armt.serialPort.SerialPortActivity;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import cn.com.armt.sdk.hardware.SerialPort;
public class MainActivity extends BaseActivity implements MyRecyclerAdapter.OnItemClickListener {
private RecyclerView recyclerview;
private MyRecyclerAdapter mAdapter;
private List<ItemBean> list;
private TextView tv_show;
private Random mRandom;
private boolean isFullScreen = true;
private boolean displayStatus = true;
private boolean naviBar = true;
private boolean statusBar = true;
private boolean isWakeUp = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化Item
list = initItem();
tv_show = findViewById(R.id.tv_show);
recyclerview = findViewById(R.id.recyclerview);
recyclerview.setLayoutManager(new LinearLayoutManager(this));
mAdapter = new MyRecyclerAdapter(list, this);
recyclerview.setAdapter(mAdapter);
mRandom = new Random();
}
/**
* Item的点击事件
*
* @param parent item View
* @param position item位置
*/
@Override
public void onClick(View parent, int position) {
tv_show.setText("");//置空
ItemBean itemBean = list.get(position);
if (itemBean.getClazz() != null) {
//跳转到页面
startActivity(new Intent(this, itemBean.getClazz()));
} else {
//当前页面处理
switch (position) {
case 0://全屏
isFullScreen = !isFullScreen;
tv_show.setText("全屏:" + isFullScreen);
mDeviceManager.forceFullScreen(isFullScreen);
break;
case 1://获取屏幕背光亮度
tv_show.setText("屏幕背光亮度:" + mDeviceManager.getBrightness());
break;
case 2://设置屏幕背光亮度
int b = mRandom.nextInt(255 - 1 + 1) + 1;
tv_show.setText("设置屏幕亮度值:" + b);
mDeviceManager.setBrightness(b);
break;
case 3://获取屏幕状态
tv_show.setText("屏幕状态:" + (mDeviceManager.getDisplayStatus() ? "开启" : "关闭"));
break;
case 4://设置屏幕状态
displayStatus = !displayStatus;
tv_show.setText("设置屏幕:" + displayStatus);
mDeviceManager.setDisplayStatus(displayStatus);
break;
case 5://显示|隐藏导航栏
naviBar = !naviBar;
if (naviBar) {
mDeviceManager.showNavigationBar();
tv_show.setText("显示导航栏");
} else {
mDeviceManager.removeNavigationBar();
tv_show.setText("隐藏导航栏");
}
break;
case 6://显示|隐藏状态栏
statusBar = !statusBar;
if (statusBar) {
mDeviceManager.showStatusBar();
tv_show.setText("显示状态栏");
} else {
mDeviceManager.removeStatusBar();
tv_show.setText("隐藏状态栏");
}
break;
case 7://声音输出设置
//codec:默认,板上codec和喇叭输出 usb:外接usb声卡输出
mDeviceManager.setAudioOutput("codec");
break;
case 8://检测网络是否可用
tv_show.setText("网络是否可用: " + (mDeviceManager.isNetworkConnected() ? "可用" : "不可用"));
break;
case 9://网络类型
tv_show.setText("网络类型:" + mDeviceManager.getNetworkType());
break;
case 10://获取IP地址
tv_show.setText("IP: " + mDeviceManager.getLocalIpAddress());
break;
case 11://以太网MAC地址 &WIFI MAC地址
tv_show.setText("以太网MAC地址:" + mDeviceManager.getEthernetMacAddress()
+ "\nWIFI MAC地址:" + mDeviceManager.getWifiMacAddress());
break;
case 12://读文件(system权限)
mDeviceManager.readFile("/sdcard/system/build.prop", 0, 100);
break;
case 13://写文件(system权限)
mDeviceManager.writeFile("/sdcard/system/build.prop", 0, new byte[100]);
break;
case 14://CPU名字&当前温度
tv_show.setText("CPU名字:" + mDeviceManager.getCpuName() + " \nCPU温度:" + mDeviceManager.getCpuThermal());
break;
case 15://设备内存/可用内存
tv_show.setText("设备内存/可用内存: " + mDeviceManager.getTotalMemory() + "/" + mDeviceManager.getMemoryAvail());
break;
case 16://设备名&序列号
tv_show.setText("设备名:" + mDeviceManager.getDeviceName() + "\n序列号:" + mDeviceManager.getDeviceSerial());
break;
case 17://内核版本
tv_show.setText("内核版本:" + mDeviceManager.getKernelVersion());
break;
case 18://系统版本
tv_show.setText("系统版本:" + mDeviceManager.getSystemVersion());
break;
case 19://android版本
tv_show.setText("android版本:" + mDeviceManager.getAndroidVersion());
break;
case 20://关闭系统
mDeviceManager.shutdown(true);
break;
case 21://重启系统
mDeviceManager.reboot(true, "测试重启!");
break;
case 23://系统休眠/唤醒
isWakeUp = !isWakeUp;
if (isWakeUp) {
mDeviceManager.wakeUp();
tv_show.setText("已唤醒");
} else {
mDeviceManager.goToSleep();
tv_show.setText("已休眠");
}
break;
case 24://静默安装apk
//静默安装
// mDeviceManager.installPackage(new File("").getAbsolutePath(), "包名");
//静默安装并重启
// mDeviceManager.installPackageLaunch(new File("").getAbsolutePath(), "包名");
break;
case 25://卸载apk
//packageName: 包名 keepdata:是否保持app数据
mDeviceManager.uninstallPackage(getPackageName(), false);
break;
default:
break;
}
}
}
private List<ItemBean> initItem() {
List<ItemBean> list = new ArrayList<>();
list.add(new ItemBean("全屏", null));
list.add(new ItemBean("获取屏幕背光", null));
list.add(new ItemBean("设置屏幕背光", null));
list.add(new ItemBean("获取屏幕状态", null));
list.add(new ItemBean("设置屏幕状态", null));
list.add(new ItemBean("隐藏/显示导航栏", null));
list.add(new ItemBean("隐藏/显示状态栏", null));
list.add(new ItemBean("声音输出设置", null));
list.add(new ItemBean("检测网络是否可用", null));
list.add(new ItemBean("网络类型", null));
list.add(new ItemBean("IP地址", null));
list.add(new ItemBean("WIFI&以太网MAC地址", null));
list.add(new ItemBean("读文件(system权限)", null));
list.add(new ItemBean("写文件(system权限)", null));
list.add(new ItemBean("CPU名字&当前温度", null));
list.add(new ItemBean("设备内存/可用内存", null));
list.add(new ItemBean("设备名&序列号", null));
list.add(new ItemBean("内核版本", null));
list.add(new ItemBean("系统版本", null));
list.add(new ItemBean("android版本", null));
list.add(new ItemBean("关闭系统", null));
list.add(new ItemBean("重启系统", null));
list.add(new ItemBean("定时开关机", TimerPowerOnOffActivity.class));//包含1.关闭定时开机/关机/重启 2.enableSchedulePower 3.getSchedulePower
list.add(new ItemBean("系统休眠/唤醒", null));
list.add(new ItemBean("静默安装apk", null));//24
list.add(new ItemBean("卸载apk", null));//25
list.add(new ItemBean("", null));
list.add(new ItemBean("看门狗", WatchdogActivity.class));
list.add(new ItemBean("", null));
list.add(new ItemBean("副屏", PresentationActivity.class));
list.add(new ItemBean("", null));
list.add(new ItemBean("串口", SerialPortActivity.class));
return list;
}
}
链接:
总结
APP开发中会遇到很多读取控制设备的场景,有了官方提供的API方便很多。armtsdkapi.jar 包中还有很多API可以调用, 这篇文章介绍最基本的API使用方法