android 

这两三天一直在研究拦截卸载的东西,目的很明显就是让应用后无法卸载!

目前我想到的主要实现方向有2个,

1.卸载前直接杀掉卸载进程

2.卸载后后台重新安装

详细分析其可行性:

1.卸载前直接杀掉卸载进程

看下图,在用户点击卸载按钮时,系统会在Logcat中打印一条信息” START {act=android.intent.action.DELETE dat=package:android.askforun cmp=com.android.packageinstaller/.UninstallerActivity} “,事件”android.intent.action.DELETE “,对象”package:android.askforun“(卸载应用的包)。

利用以上的信息,使activity开机启动并在后台运行一直监听Logcat,当出现上述关键词时立即kill掉系统卸载进程。

问题:

如何kill掉系统卸载进程?

原本我打算用killBackgroundProcesses("com.android.packageinstaller");在kill掉进程,但是这个方法并没有发挥作用,killBackgroundProcesses无法kill掉系统进程,而且在代码中结束其他进程也有十分多的限制!

具体可以看一下:http://www.cnblogs.com/crazypebble/archive/2011/04/08/2006213.html

第一个思路在结束卸载进程中卡死!

2.卸载后后台重新安装

在应用卸载完成的时候,系统的发送广播:android.intent.action.PACKAGE_REMOVED,设置BroadcastReceiver接收器,当接收到我们的应用被卸载时就调用一个activity重新安装应用。

问题:

如何安装?--静默安装/后台安装

1)

Java代码  
  1. String str = "/xx.apk";
  2. String fileName = Environment.getExternalStorageDirectory() + str;
  3. Intent intent = new Intent(Intent.ACTION_VIEW);
  4. intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");
  5. startActivity(intent);
String str = "/xx.apk";
String fileName = Environment.getExternalStorageDirectory() + str;
Intent intent = new Intent(Intent.ACTION_VIEW);intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");
startActivity(intent);

认框使用类似的方法会弹出用户确认框,必须通过用户确认才能继续,这根本就无法满足需求!

2)在代码中使用pm命令安装应用--没有安装权限

3)使用隐藏的api安装--没有安装权限

上面两个方法,在运行的时候都出错,提示没有intallpackage的权限(即使你在AndroidManifest.xml中已经声明安装权限)。

网上唯一说实现静默安装的文章http://hi.baidu.com/6936995/blog/item/eca4436387a80d7b0d33fa31.html,真心看不明

还有一篇文章,实现静默安装的两种方法http://blog.csdn.net/sodino/article/details/6238818,按照博文所示要实现静默安装必须获取机子本身的签名,我认为用代码很难实现获取机子签名并对应用进行重新打包!

第二个思路在静默安装中卡死!

以上就是这几天我研究拦截卸载所遇到的问题,希望有人可以继续研究下去!

拦截android应用卸载的问题相关推荐

  1. 全网最详细的Android Studio卸载、安装和启动教程

    从2019.5.2安装Android Studio,再到2020.3.4更新Android Studio,再到2021.5.30卸载Android Studio.我内心还是很多的不舍,就和家里养的小猫 ...

  2. android studio卸载找不到uninstall

    android studio卸载找不到uninstall 今天安装配置android studio,直接从官网下的最新版,配置有问题想卸载居然发现没有uninstall文件!!! 真离谱. 不得不重新 ...

  3. 02. android studio卸载

    以下内容均已录制 查看B站视频 android studio卸载 a. 控制面板中 找到android studio 卸载时需要勾选用户配置 一并删除 b. 再找到C:\Users\用户名\AppDa ...

  4. android 滑动拦截,Android 滑动拦截实例代码解析

    废话不多说了,直接给大家贴代码了,具体代码如下所示: package demo.hq.com.fby; import android.content.Context; import android.u ...

  5. android静默卸载,Android实践 -- Android静默安装和卸载

    App的静默安装和卸载 Android系统本身提供了安装卸载功能,但是api接口是@hide的,不是公开的接口,所以在应用级别 是无法实现静默安装和卸载的,要实现静默安装和卸载需要是系统应用,要有系统 ...

  6. android 安装卸载应用提醒_Android监听程序的安装和卸载

    在android系统中,安装和卸载都会发送广播,当应用安装完成后系统会发android.intent.action.PACKAGE_ADDED广播.可以通过intent.getDataString() ...

  7. 如何将Android Studio卸载的干干净净?

    (请先看这篇文章:本博打开方式!!!请详读!!!请详读!!!请详读!!!_Cat-CSDN博客) 1.打开控制面板,选择"程序",在卸载或更改程序界面找到Android_Studi ...

  8. android 安装卸载应用提醒_Android程序使用代码的安装和卸载!!!

    安装: String str = "/CanavaCancel.apk"; String fileName = Environment.getExternalStorageDire ...

  9. android shell卸载应用程序,android系统软件卸载_adb配置使用

    目录 一.windows 配置 adb命令 下载 Android的sdk文件,找到目录 platform-tools 配置系统环境变量 测试 adb命令 二.mac 配置 adb 命令 三.使用adb ...

最新文章

  1. Docker基本原理概述
  2. c语言中void指针,C 语言 void指针
  3. java exec 调用vbs_通过java调用VBS,再用VBS执行Excel中的宏的例子 | 学步园
  4. LSM Tree 学习笔记——MemTable通常用 SkipList 来实现
  5. 【网络安全】Agent内存马的自动分析与查杀
  6. 大白话说Java泛型:入门、使用、原理
  7. 强制修改上网本分辨率
  8. 广东计算机电子学校,广东省电子职业技术学校
  9. Express 常用中间件 body-parser 实现解析
  10. 2020 年百度之星#183;程序设计大赛 - 初赛三
  11. 24点游戏算法python_24点游戏算法
  12. c语言中strlen什么作用,strlen函数在c语言中的用法是什么
  13. vim 常用命令 挺全的
  14. ASM磁盘状态为forcing
  15. 求次方的c语言程序,C语言编程求13的13次方的最后三位数
  16. 【报告分享】2021年小红书内容营销趋势洞察-千瓜(附下载)
  17. 抖音快手怎么涨粉丝比较快速
  18. hadoop 文本统计一个字符的个数_hadoop统计单词个数 - 卡饭网
  19. html为图片设置边框
  20. 2021年山东省青少年人工智能培训

热门文章

  1. 计算某点(L,B)沿子午线到赤道的弧长(公式和java源码)
  2. RTKLIB学习总结(二)时间系统、坐标系统
  3. 文件导出传值的get和post方式的写法(无状态化,前端vue)
  4. 单片机复习总结和题目
  5. 数组公式基本功修炼之了解数组公式
  6. 姜奇平:电信的傲慢与偏见
  7. 城市轨道交通运营管理属于什么院系_城市轨道交通运营管理系统专业
  8. Vtiger CRM-非常好用的开源免费客户关系管理系统
  9. 解决Access to XMLHttpRequest at http:XXX from origin http:XXX has been blocked by CORS policy: No Acce
  10. “蔚来杯“2022牛客暑期多校训练营9 补题题解(A、B、G、E)