如何做一个流氓软件-Android系统按钮的控制

最近做一个项目要需要软件,不能随便被用户关掉,所以就一直研究如实现这种效果。主要实现的功能是,关掉虚拟按钮,关掉返回键,Home,menu键,电源键,下拉顶部栏。主要就是这几个。
返回键:返回键和音量键最简单,只要在Activity中重写onkeydown方法就好了。

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        switch (keyCode){
            case KeyEvent.KEYCODE_BACK://返回键
                return true;
            case KeyEvent.KEYCODE_VOLUME_DOWN://音量键
                return true;
            case KeyEvent.KEYCODE_VOLUME_UP://音量键
                return true;
        }
            //只要不返回super.onKeyDown()方法就能屏蔽掉按键了
        return super.onKeyDown(keyCode, event);
    }

home:比较麻烦,因为这个是没有办法真正屏蔽的,只能使用修改源码的方式,用点笨方法可以达到这种效果,就是将Activity 的action设置成luncher,把这个软件变成一个桌面,然后再点击home时选择这个软件,并将Activity的启动方式设置成sington,这样每次点击home时就启动这个软件,怎么也‘’退不出‘’了。

 <activity android:name=".MainActivity">
     <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.HOME"/>
       <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
   </activity>

电源键:电源键我的办法是做一个service,在后台跑,并注册一个监听电源启动,和关闭的广播,监听到这个事件时就启动哪个Activity,说白了就是将软件变成一个锁屏。
顶部栏:具体实现方式是,把Activity 的type变成一个dailog,并且总是控制在最顶端,这样就覆盖了顶部栏,下拉事件就不会被监听到了,也不会有下拉事件了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值