文档章节

流氓软件 不能卸载的App

恒源祥
 恒源祥
发布于 2016/09/29 17:08
字数 337
阅读 71
收藏 0

1:写广播

public class MyDeviceReceiver extends DeviceAdminReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        super.onReceive(context, intent);

        Log.e("m_tag", "onReceive");
    }

    @Override
    public CharSequence onDisableRequested(Context context, Intent intent) {

        //跳离当前询问是否取消激活的 dialog
        Intent outOfDialog = context.getPackageManager().getLaunchIntentForPackage("com.android.settings");
        outOfDialog.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(outOfDialog);

        //调用设备管理器本身的功能,每 100ms 锁屏一次,用户即便解锁也会立即被锁,直至 7s 后
        final DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
        dpm.lockNow();
        new Thread(new Runnable() {
            @Override
            public void run() {
                int i = 0;
                while (i < 70) {
                    dpm.lockNow();
                    try {
                        Thread.sleep(100);
                        i++;
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }).start();

        Log.e("m_tag", "onDisableRequested");

        return "";
    }
}

2:注册广播

<receiver
    android:name=".MyDeviceReceiver"
    android:description="@string/receiver_description"
    android:label="@string/app_name"
    android:permission="android.permission.BIND_DEVICE_ADMIN">

    <meta-data
        android:name="android.app.device_admin"
        android:resource="@xml/device_manager_policies" />

    <intent-filter>
        &lt;!&ndash;此处必须设定该Action,不设定则无法启动设备管理器,之前版本可启动但看不到的bug已被修复&ndash;&gt;
        <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
    </intent-filter>

</receiver>

3:在Activity中DevicePolicyManager:

Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
ComponentName deviceComponentName = new ComponentName("zhy.runan.myapplication",
        "zhy.runan.myapplication.MyDeviceReceiver");
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, deviceComponentName);
this.startActivity(intent);

这样就可以实现app不能卸载的功能了,代码很简单,有写的不清楚或错误的地方,欢迎留言指正。

 

© 著作权归作者所有

恒源祥
粉丝 16
博文 109
码字总数 97221
作品 0
深圳
Android工程师
私信 提问
加载中

评论(2)

恒源祥
恒源祥 博主

引用来自“Dxinc”的评论

你好,能提供Demo给我吗?

没有demo,很简单的
D
Dxinc
你好,能提供Demo给我吗?
流氓软件,你安装了几个?该卸载了。

作为一个良心的公众号,我酷长今天必须严肃地,认真地,负责任地给大家科普一下。 你们可以先看看下面的这些软件。 首先得问大家一句,上面的软件你安装了几个?!安装了,就该卸载了。你应该...

酷长
2018/07/05
0
0
北京网络行业协会鉴定称飞流软件无法卸载

上周,央视“3·15”晚会曝光了网秦杀毒软件涉嫌与飞流下载“串通欺诈”的现象。2011年3月,经北京网络行业协会 电子数据司法鉴定中心鉴定:安装手机飞流软件之后,用户无法卸载,手机会自动...

红薯
2011/03/22
937
11
Google遵循的软件行为准则

昨天,我写了Google发现的十条真理,其中第六条就是著名的"不干坏事,也能成功"(Don't be evil)。 那么,什么样的事情算是"坏事"呢? Google在另一个页面写了六条软件准则(Software Prin...

阮一峰
2007/12/27
0
0
Android学习——设备管理器勾选后不能再取消了

自己最近在学习Android过程中,下载了一个Demo尽然不能取消设备管理器,也不能卸载。自己猛一想这事如何实现的? 首先AndroidManifest.xml: Xml代码 <receiver android:name="com.dean.aut...

中成才
2015/09/22
211
0
Firefox浏览器主页被锁定为 hao123 的解决方法

版权声明:本文为 Abracadabra(爱博客大伯) 原创文章,转载请注明作者及链接,请勿用于任何商业用途。 https://blog.csdn.net/u013553529/article/details/80531311 ★ 中招:主页锁定 学校统...

爱博客大伯
2018/05/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

分布式协调服务zookeeper

ps.本文为《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之一 ZooKeeper ZooKeeper曾是Apache Hadoop的一个子项目,是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它...

ls_cherish
今天
4
0
redis 学习2

网站 启动 服务端 启动redis 服务端 在redis 安装目录下 src 里面 ./redis-server & 可以指定 配置文件或者端口 客户端 在 redis 的安装目录里面的 src 里面 ./redis-cli 可以指定 指定 连接...

之渊
昨天
2
0
Spring boot 静态资源访问

0. 两个配置 spring.mvc.static-path-patternspring.resources.static-locations 1. application中需要先行的两个配置项 1.1 spring.mvc.static-path-pattern 这个配置项是告诉springboo......

moon888
昨天
4
0
hash slot(虚拟桶)

在分布式集群中,如何保证相同请求落到相同的机器上,并且后面的集群机器可以尽可能的均分请求,并且当扩容或down机的情况下能对原有集群影响最小。 round robin算法:是把数据mod后直接映射...

李朝强
昨天
4
0
Kafka 原理和实战

本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/bV8AhqAjQp4a_iXRfobkCQ 作者简介:郑志彬,毕业于华南理工大学计算机科学与技术(双语班)。先后从事过电子商务、开放平...

vivo互联网技术
昨天
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部