ARMT系统SDK使用方法

文章目录


前言

介绍下ARMT平台下SDK的使用说明


 一、环境介绍

  • Android

系统版本:Android  11
Android Studio Electric Eel | 2022.1.1

jdk-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使用方法

猜你喜欢

转载自blog.csdn.net/qaz96801/article/details/130431261