获取正在运行的app方案尝试

RunningTask

Android4.0系列可以,5.0以上机器不行

RunningProcess

5.0可以 之后版本失效 只能返回自身app信息

UsageStatsManager

可以但是又缺陷
1 需要指定时间范围 超过时间范围用不了
2 需要用户授权 跳转到系统设置授权

无障碍功能实现

需要用户手动授权

通过shell命令

1 ps 只能返回自身app的信息
2 读取proc目录下的文件信息 亲测和ps一样只能读取自身的信息
3 dumpsys window | grep mCurrentFocus 被selinux拦截

SELinux : avc: denied { find } for pid=31932 uid=10245 name=window scontext=u:r:untrusted_app_27:s0:c245,c256,c512,c768 tcontext=u:object_r:window_service:s0 tclass=service_manager permissive=0

通过反射

思路 通过目标app的包名拿到对应app的application 然后通过application 反射mActivityThread —亲测可以拿到自身app的信息

曲线救国的方式

获取所有三方应用然后过滤掉不运行的,然后遍历出你想要监听的那个应用
  public void getRunning3rdApp() {
    PackageManager localPackageManager = getPackageManager();
    List localList = localPackageManager.getInstalledPackages(0);
    for (int i = 0; i < localList.size(); i++) {
      PackageInfo localPackageInfo1 = (PackageInfo) localList.get(i);
      String str1 = localPackageInfo1.packageName.split(":")[0];
      if (((ApplicationInfo.FLAG_SYSTEM & localPackageInfo1.applicationInfo.flags) == 0)
              && ((ApplicationInfo.FLAG_UPDATED_SYSTEM_APP & localPackageInfo1.applicationInfo.flags) == 0)
              && ((ApplicationInfo.FLAG_STOPPED & localPackageInfo1.applicationInfo.flags) == 0)) {
            android.util.Log.e("yubang", "packageName =====>:" + str1);
      }
    }
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【RT-Thread作品秀】基于stm32F407与RT-thread的问了智能水培系统作者:liyutan0831 概述本产品着眼于城市家用的智能水培领域,是现代家庭园艺的一部分,随着人们生活水平质量的提高,对绿色健康生活方式的重视,原来越多的人开始关注家庭园艺,愿意通过在家种植花卉,多肉等观赏植物或蔬菜类作物,特别是今年疫情期间造成的出行不便问题,让更多人倾向于尝试在家中种植,方便收获纯绿色无污染的蔬菜。我们设计的这一款智能水培机是一个物联网智能终端,通过云平台的辅助降低家用水培的门槛,兼顾灵活性和自动化,方便省时的让用户收获到家庭水培的乐趣。 可以在APP 端一键自动进行植物的种植并全程监测,也支持用户通过硬件按钮 或 APP 端手动对设备进行控制,探索属于自己的种植习惯,方式并可以通过 云平台,存储自己的种植规程并分享,也可以直接应用别人的规程数据完成 数据的快速共享。 开发环境硬件:STM32F407ZGT6 RT-Thread版本:RTT Nano 开发工具及版本:KEIL 5 RT-Thread使用情况概述本项目采用RTT nano版本组件,对各任务(传感器数据获取,LORA收发,WIFI模块收发即与云平台的通信,各控制功能任务)封装成独立的线程,所用的RTT 内核主要为控制线程间同步的信号量与事件集,以控制部分的打氧功能为例,该功能需要输入参数为云平台通过WIFI通信部分线程传来的打氧时间与打氧间隔2个参数。因此采用一个多个事件的唤醒事件集来实现该线程所对应的的控制功能的触发。该方法同样适合需要参数输入的营养液控制,光照控制,加湿等。同时项目也采取信号量协助线程间同步。主要用于WIFI通信收发(tx,rx)间的同步。此外,还采用的中断的方式相应开发板的按键触发,用于通过按键切换主机与从机模式。 硬件框架主控芯片与RT-thread 本项目采用的芯片为stm32F407ZGT6,使用 HAL 库编写,搭载 RT-thread nano 嵌 入式实时操作系统。有效而可靠的保证了系统运行并行性和效率,采用事件集 event,信号量 semaphore 等实现线程之间的同步协调以及通信,充分发挥实时操 作系统与 stm32F407 的优势。在芯片的资源利用上,采用了 IO 高低电平输出控 制继电器,PWM 输出控制电机驱动 L298N 模块,串口 2 通过 AT 指令控制 WIFI 模块通信. 传感层搭建 作为一个有关植物种植的智慧物联网终端,基于环境监测,报警系统的需要,整个项目配备丰富完善的传感层,具体使用到的传感器如下。1. 水温监测:采用 ds18b20 模块,单总线输出,由 IO 口按照工作时序读取数据。 2. 空气(环境)温度,湿度监测:采用 DHT11 模块,单总线输出,采用 stm32 单片机 IO 口按照规定时序读出数据。 3. EC 值检测,采用模拟量输出的 EC 值变送器,经过 stm32 ADC 模块转换后变 为具体数值。 4. PH 值检测,同样采用模拟量输出的,经过 stm32 ADC 模块转化为具体数值。 5. 光敏模块,水位模块与浊度模块。三者均采用数字开关量输出,其中光敏, 浊度模块默认输出高电平,测量量到达阈值后输出低电平。水位模块反之。 2.2控制部分搭建 为了按照规程要求,实现远程水培的自动与手动控制,具体使用的执行器如下。1,光照部分。采用 12V LED 三色灯带,有红,蓝,白三色 ,由 stm32 GPIO 输 出高低电平进行控制。 2,加湿和打氧部分。出于对湿度控制和保证植物水面以上湿润的要求,采用 24 伏供电,塑料加湿片的浸入式加湿器来控制。同样为了保证营养液含氧量。打氧 氧泵采用 12V 供电。 3,电机控制,营养液控制。营养液控制采用 12V 蠕动泵和小型水泵。分别对 EC 值,PH 值两大溶液参数进行控制。对于 EC 值,通过蠕动泵泵入调制好的营养 液的方式来增加溶液 EC 只,通过两只中等功率,12V 供电水泵来同步换水,抽 出营养液,并注入等量清水。PH 值则直接采用两只蠕动泵加入酸液碱液控制。 两个营养液参数均采取位式调发,小步长,长滞回来应对营养液参数变化的较长 滞回时间。其中 PH 由与调节中涉及化学变化调解初期会有较大浮动,整体调解 时间在 30—40 分钟左右,由于水培的种植周期长达几个月且自动模式下只需要 两次营养液调整,其他均为范围维持,因此该调节时间可以接受。 通信部分通信部分采用ESP8266-01 模块和 MQTT 指令,MQTT 是一种轻量级高效的,适 用于物联网通信协议,设备侧向平台侧上传传感器数据,报警值,设备状态等, 同时从云平台获取来自 APP 客户端的指令。同时为了减小下发指令数目减少遗 漏,在指令端自拟协议打包下发,确保设备

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值