【Demo 记录】获取栈顶APP所在的应用包名 --getRunningTasks 弃用的处理方案

–分两种情况处理,
低于5.0:使用getRunningTasks
高于5.0:使用,PACKAGE_USAGE_STATE 查看使用情况的这个权限
这个权限,只能系统app使用,要使用,需要在该权限后面添加上忽略,并且在用户使用时,给用户自己来打开app的查看使用情况的权利。这个权限不属于6.0权限,使用其他方式动态申请该权限无效。

使用场景
定时打印app的栈顶app 所在的包名称

Demo场景实例
创建一个服务,服务里面设置一个定时器,每隔5s打印一次栈顶app所在的包名,在布局文件中,设置一个按钮,用于打开这个服务。


1、添加权限

<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission
    android:name="android.permission.PACKAGE_USAGE_STATS"
    tools:ignore="ProtectedPermissions" />

2、服务的设置

注意: 服务 需要在清单文件中进行注册

/**
 * 自定义服务  时刻记录手机的栈顶activity 所在包
 */
public class TopAppService extends Service {
   
    private Timer timer;
    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.e("
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要实现 Java Modbus-TCP 根据寄存器种类获取数据,需要用到以下依赖包: 1. jamod-1.2.jar:Java Modbus 实现库,提供 Modbus 协议的实现。 2. log4j-1.2.8.jar:Java 日志库,用于记录程序运行日志。 以下是示例代码: ```java import net.wimpi.modbus.ModbusException; import net.wimpi.modbus.msg.ReadInputRegistersRequest; import net.wimpi.modbus.msg.ReadInputRegistersResponse; import net.wimpi.modbus.net.TCPMasterConnection; import net.wimpi.modbus.procimg.InputRegister; import java.net.InetAddress; public class ModbusTCPClient { public static void main(String[] args) { try { // 创建 Modbus TCP 连接 TCPMasterConnection connection = new TCPMasterConnection(InetAddress.getByName("localhost")); connection.setPort(502); connection.connect(); // 发送读取输入寄存器的请求,读取 10 个寄存器的值 ReadInputRegistersRequest request = new ReadInputRegistersRequest(0, 10); request.setUnitID(1); ReadInputRegistersResponse response = (ReadInputRegistersResponse) connection.send(request); // 处理响应数据 InputRegister[] registers = response.getRegisters(); for (int i = 0; i < registers.length; i++) { InputRegister register = registers[i]; System.out.println("Register " + i + ": " + register.toShort()); } // 关闭连接 connection.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 以上示例代码使用 jamod 库实现了 Modbus TCP 客户端,向本地的 Modbus TCP 服务器发送了读取输入寄存器的请求,并输出了读取到的寄存器值。根据需要修改 IP 地址、端口号、寄存器地址和寄存器数量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值