拦截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)
![](http://wonka438.iteye.com/images/icon_copy.gif)
![](http://wonka438.iteye.com/images/icon_star.png)
![](http://wonka438.iteye.com/images/spinner.gif)
- 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);
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应用卸载的问题相关推荐
- 全网最详细的Android Studio卸载、安装和启动教程
从2019.5.2安装Android Studio,再到2020.3.4更新Android Studio,再到2021.5.30卸载Android Studio.我内心还是很多的不舍,就和家里养的小猫 ...
- android studio卸载找不到uninstall
android studio卸载找不到uninstall 今天安装配置android studio,直接从官网下的最新版,配置有问题想卸载居然发现没有uninstall文件!!! 真离谱. 不得不重新 ...
- 02. android studio卸载
以下内容均已录制 查看B站视频 android studio卸载 a. 控制面板中 找到android studio 卸载时需要勾选用户配置 一并删除 b. 再找到C:\Users\用户名\AppDa ...
- android 滑动拦截,Android 滑动拦截实例代码解析
废话不多说了,直接给大家贴代码了,具体代码如下所示: package demo.hq.com.fby; import android.content.Context; import android.u ...
- android静默卸载,Android实践 -- Android静默安装和卸载
App的静默安装和卸载 Android系统本身提供了安装卸载功能,但是api接口是@hide的,不是公开的接口,所以在应用级别 是无法实现静默安装和卸载的,要实现静默安装和卸载需要是系统应用,要有系统 ...
- android 安装卸载应用提醒_Android监听程序的安装和卸载
在android系统中,安装和卸载都会发送广播,当应用安装完成后系统会发android.intent.action.PACKAGE_ADDED广播.可以通过intent.getDataString() ...
- 如何将Android Studio卸载的干干净净?
(请先看这篇文章:本博打开方式!!!请详读!!!请详读!!!请详读!!!_Cat-CSDN博客) 1.打开控制面板,选择"程序",在卸载或更改程序界面找到Android_Studi ...
- android 安装卸载应用提醒_Android程序使用代码的安装和卸载!!!
安装: String str = "/CanavaCancel.apk"; String fileName = Environment.getExternalStorageDire ...
- android shell卸载应用程序,android系统软件卸载_adb配置使用
目录 一.windows 配置 adb命令 下载 Android的sdk文件,找到目录 platform-tools 配置系统环境变量 测试 adb命令 二.mac 配置 adb 命令 三.使用adb ...
最新文章
- Docker基本原理概述
- c语言中void指针,C 语言 void指针
- java exec 调用vbs_通过java调用VBS,再用VBS执行Excel中的宏的例子 | 学步园
- LSM Tree 学习笔记——MemTable通常用 SkipList 来实现
- 【网络安全】Agent内存马的自动分析与查杀
- 大白话说Java泛型:入门、使用、原理
- 强制修改上网本分辨率
- 广东计算机电子学校,广东省电子职业技术学校
- Express 常用中间件 body-parser 实现解析
- 2020 年百度之星#183;程序设计大赛 - 初赛三
- 24点游戏算法python_24点游戏算法
- c语言中strlen什么作用,strlen函数在c语言中的用法是什么
- vim 常用命令 挺全的
- ASM磁盘状态为forcing
- 求次方的c语言程序,C语言编程求13的13次方的最后三位数
- 【报告分享】2021年小红书内容营销趋势洞察-千瓜(附下载)
- 抖音快手怎么涨粉丝比较快速
- hadoop 文本统计一个字符的个数_hadoop统计单词个数 - 卡饭网
- html为图片设置边框
- 2021年山东省青少年人工智能培训
热门文章
- 计算某点(L,B)沿子午线到赤道的弧长(公式和java源码)
- RTKLIB学习总结(二)时间系统、坐标系统
- 文件导出传值的get和post方式的写法(无状态化,前端vue)
- 单片机复习总结和题目
- 数组公式基本功修炼之了解数组公式
- 姜奇平:电信的傲慢与偏见
- 城市轨道交通运营管理属于什么院系_城市轨道交通运营管理系统专业
- Vtiger CRM-非常好用的开源免费客户关系管理系统
- 解决Access to XMLHttpRequest at http:XXX from origin http:XXX has been blocked by CORS policy: No Acce
- “蔚来杯“2022牛客暑期多校训练营9 补题题解(A、B、G、E)