怎么在应用程序后台运行时监听系统广播

怎么在应用程序后台运行时监听系统广播,第1张

方法一:使用windows自带的命令sc使用sc create 方法创建。如:sc create CaptureScreen binpath= F:\zwmei-project\decklink-learning\OutputBitmap\Debug\OutputBitmapexe type= own start= auto displayname= Screen_Capture其中 CaptureScr

一、通过ActivityManagerRunningAppProcessInfo判断

首先,我们需要写一个BaseActivity,然后让我们应用程序的Activity都继承自BaseActivity,这样就可以统一管理,然后在BaseActivity的onResume()和onStop()方法中进行判断应用程序是否进入到后台并且是否从后台返回到了前台,直接看代码:

public class BaseActivity extends Activity {

    public static boolean isActive; //全局变量

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        superonCreate(savedInstanceState);

        setContentView(Rlayoutactivity_base);

    }

    @Override

    protected void onResume() {

        if (!isActive) {

            //app 从后台唤醒,进入前台

            isActive = true;

            Logi("ACTIVITY", "程序从后台唤醒");

        }

        superonResume();

    }

    @Override

    protected void onStart() {

        superonStart();

    }

    @Override

    protected void onPause() {

        superonPause();

    }

    @Override

    protected void onStop() {

        if (!isAppOnForeground()) {

            //app 进入后台

            isActive = false;//记录当前已经进入后台

            Logi("ACTIVITY", "程序进入后台");

        }

        superonStop();

    }

    @Override

    protected void onDestroy() {

        superonDestroy();

    }

    /

      APP是否处于前台唤醒状态

     

      @return

     /

    public boolean isAppOnForeground() {

        ActivityManager activityManager = (ActivityManager) getApplicationContext()getSystemService(ContextACTIVITY_SERVICE);

        String packageName = getApplicationContext()getPackageName();

        List<ActivityManagerRunningAppProcessInfo> appProcesses = activityManager

                getRunningAppProcesses();

        if (appProcesses == null)

            return false;

        for (ActivityManagerRunningAppProcessInfo appProcess : appProcesses) {

            // The name of the process that this object is associated with

            if (appProcessprocessNameequals(packageName)

                    && appProcessimportance == ActivityManagerRunningAppProcessInfoIMPORTANCE_FOREGROUND) {

                return true;

            }

        }

        return false;

    }

}

打开手机设置,进入应用管理界面,查看后台运行的应用,若发现有未知的后台应用,则可能是被监控软件。

检测系统更新:打开手机设置,进入系统更新界面,查看是否有未知的系统更新,若发现有,则可能是被监控软件。

查看隐藏文件:使用文件管理器查看手机隐藏文件,若发现有未知的文件,则可能是被监控软件。

安装安全软件:使用杀毒软件或者安全软件扫描手机,若发现有可疑的文件或者病毒,则可能是被

IE本身就有历史纪录呀,在查看--浏览器栏--历史记录下,可以看到你最近的浏览记录。要删除,可以点工具--internet选项--常规--删除,再点你要删除的选项或全部。

如果你指的是其他程序,那就是木马了,那就要通过杀毒软件你杀毒或防火墙去防护了。

为了实现键盘的监控,从新开发一个输入法是不现实的,一般的 *** 作就是在系统的输入法机制中添加接口回调。我们知道,再应用程序中拿到按键的回调一般是监听onKeyDown的接口,如下所示:

public boolean onKeyDown(int keyCode, KeyEvent event)

开发者就可以根据回调方法中的参数, keyCode与KeyEvent来判断具体事件。但是,由于事件的回调机制在其的沙箱中运行,在其他应用中是无法拿到当前应用事件回调的。

那么我们就从上到下,具体的看看事件的传递机制。如下图所示,用户点击后,软键盘或物理按键的输入驱动就会产生一个中断,且向/dev/input/event中写入一个相应的信号量。Android *** 作系统则会循环的读取其中的事件,再分发给WindowManagerServer。由WindowManagerServer根据事件的来源分发到各个不同的ViewGroup与View中,从而产生不同的OnClick、OnKeyDown和OnTouch等事件。

这个时候很自然的想到,黑客们希望做键盘监控,一定会向Linux底层增加自定义的事件。这里我们使用的是Linux中的getevent获得/dev/input/eventX设备汇报的事件,这个命令还会输出所有event设备的基本信息。包括触屏、按键、耳机插入等等。其基本用法如下:

Usage: getevent [-t] [-n] [-sswitchmask] [-S] [-v [mask]] [-d] [-p] [-i] [-l] [-q] [-c count] [-r] [device]

  -t: show time stamps

  -n: don't print newlines

  -s: print switch states for given bits

  -S: print all switch states

  -v: verbosity mask (errs=1, dev=2, name=4, info=8, vers=16, pos events=32,props=64)

  -d: show HID descriptor, if available

  -p: show possible events (errs, dev, name, pos events)

  -i: show all device info and possible events

  -l: label event types and names in plain text

  -q: quiet (clear verbosity mask)

  -c: print given number of events then exit

  -r: print rate events are received

键入getevent后,我们能够看到设备中的一些列输入硬件驱动信息,同样下面会出现很多输入指令信号,通常情况下,这些信号量都在刷屏,如下图所示:

这些信号量的表示我们无法直接看懂,输入getevent –l加入Label我们能够看到一些添加的标签,如下所示:

其实这些Lable已经在其inputh头文件中定义好,其中type的定义如下:

/

    Event types

   /

  #define EV_SYN          0x00

  #define EV_KEY          0x01

  #define EV_REL          0x02

  #define EV_ABS          0x03

  #define EV_MSC          0x04

  #define EV_SW           0x05

  #define EV_LED          0x11

  #define EV_SND          0x12

  #define EV_REP          0x14

  #define EV_FF           0x15

  #define EV_PWR          0x16

  #define EV_FF_STATUS       0x17

  #define EV_MAX          0x1f

  #define EV_CNT         (EV_MAX+1)

一般来说,常用的是EV_KEY、EV_REL、EV_ABS、EV_SYN,分别对应键盘按键、相对坐标、绝对坐标、同步事件。EV_SYN则表示一组完整事件已经完成,需要处理,EV_SYN的code定义事件分发的类型。

您好:

QQ软件和腾讯电脑管家是不会有后台程序监控的,腾讯是大公司值得信赖的,不会发生这样的后台监控的事情的,所以您放心使用就好,并建议您使用腾讯电脑管家保护您的电脑,腾讯电脑管家是杀毒管理2合1的软件,不仅杀毒防毒能力强大,还有清理垃圾、电脑加速、修复漏洞、软件管理、电脑诊所等电脑管理功能,您可以点击这里下载最新版的腾讯电脑管家:最新版腾讯电脑管家下载

腾讯电脑管家企业平台:>

在IOS后台执行是本文要介绍的内容,大多数应用程序进入后台状态不久后转入暂停状态。在这种状态下,应用程序不执行任何代码,并有可能在任意时候从内存中删除。应用程序提供特定的服务,用户可以请求后台执行时间,以提供这些服务。判断是否支持多线程UIDevicedevice=[UIDevicecurrentDevice];BOOLbackgroundSupported=NO;if([devicerespondsToSelector:@selector(isMultitaskingSupported)])backgroundSupported=devicemultitaskingSupported;声明你需要的后台任务Infoplist中添加UIBackgroundModes键值,它包含一个或多个string的值,包括audio:在后台提供声音播放功能,包括音频流和播放视频时的声音location:在后台可以保持用户的位置信息voip:在后台使用VOIP功能前面的每个value让系统知道你的应用程序应该在适当的时候被唤醒。例如,一个应用程序,开始播放音乐,然后移动到后台仍然需要执行时间,以填补音频输出缓冲区。添加audio键用来告诉系统框架,需要继续播放音频,并且可以在合适的时间间隔下回调应用程序;如果应用程序不包括此项,任何音频播放在移到后台后将停止运行。除了添加键值的方法,IOS还提供了两种途径使应用程序在后台工作:Taskcompletion—应用程序可以向系统申请额外的时间去完成给定的任务Localnotifications—应用程序可以预先安排时间执行localnotifications传递

以上就是关于怎么在应用程序后台运行时监听系统广播全部的内容,包括:怎么在应用程序后台运行时监听系统广播、android 如何监听程序从前台转入后台、怎么查看手机app是否在监测后台等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9448096.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存