需要实现此功能,一般实际开发是在自动版本更新上,当更新完开始自动安装完毕后,删除内存卡里的安装包。实现方式很简单,监听应用广播,获取内存卡下的文件,删除!
1、监听广播
  1. package com.example.a75213.testdownloaddemo;
  2. import android.content.BroadcastReceiver;
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.widget.Toast;
  6. import com.example.a75213.testdownloaddemo.contant.comm;
  7. /**
  8. * Created by 75213 on 2017/11/7.
  9. */
  10. public class InitApkBroadCastReceiver extends BroadcastReceiver {
  11. @Override
  12. public void onReceive(Context context, Intent intent) {
  13. if (Intent.ACTION_PACKAGE_ADDED.equals(intent.getAction())) {
  14. comm.rmoveFile("http://imtt.dd.qq.com/16891/7C7BB50B68B684A36339AF1F615E2848.apk");
  15. Toast.makeText(context , "监听到系统广播添加" , Toast.LENGTH_LONG).show();
  16. }
  17. if (Intent.ACTION_PACKAGE_REMOVED.equals(intent.getAction())) {
  18. comm.rmoveFile("http://imtt.dd.qq.com/16891/7C7BB50B68B684A36339AF1F615E2848.apk");
  19. Toast.makeText(context , "监听到系统广播移除" , Toast.LENGTH_LONG).show();
  20. System.out.println("");
  21. }
  22. if (Intent.ACTION_PACKAGE_REPLACED.equals(intent.getAction())) {
  23. comm.rmoveFile("http://imtt.dd.qq.com/16891/7C7BB50B68B684A36339AF1F615E2848.apk");
  24. Toast.makeText(context , "监听到系统广播替换" , Toast.LENGTH_LONG).show();
  25. }
  26. }
  27. }
2、记得给删除权限和广播注册【AndroidMainifest】
  1. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  2. <receiver
  3. android:name=".InitApkBroadCastReceiver"
  4. android:enabled="true">
  5. <intent-filter>
  6. <action android:name="android.intent.action.PACKAGE_ADDED" />
  7. <action android:name="android.intent.action.PACKAGE_REPLACED" />
  8. <action android:name="android.intent.action.PACKAGE_REMOVED" />
  9. <data android:scheme="package" />
  10. </intent-filter>
  11. </receiver>
 

3、删除工具类

  1. package com.example.a75213.testdownloaddemo.contant;
  2. import android.os.Environment;
  3. import java.io.File;
  4. /**
  5. * Created by 75213 on 2017/11/1.
  6. */
  7. public class comm{
  8. public static File getPathFile(String path){
  9. String apkName = path.substring(path.lastIndexOf("/"));
  10. File outputFile = new File(Environment.getExternalStoragePublicDirectory
  11. (Environment.DIRECTORY_DOWNLOADS), apkName);
  12. return outputFile;
  13. }
  14. public static void rmoveFile(String path){
  15. File file = getPathFile(path);
  16. file.delete();
  17. }
  18. }

Android APK安装完成自动删除安装包的更多相关文章

  1. H5+app,自动更新后自动删除安装包

    H5+app 自动删除安装包 一.前言 之前做好的app自动更新,遗留下了一个问题,就是自动更新后安装包没有自行删除掉. 好像现在的手机的系统是有安装完自动清理安装包的.想我这个H5+的app安装完后 ...

  2. Android 应用安装成功之后删除apk文件

    问题: 在应用开发中遇到需要这样的需求:在用户下载我们的应用安装之后删除安装包. 解决: android会在每个外界操作APK的动作之后发出系统级别的广播,过滤器名称: android.intent. ...

  3. CentOS yum安装软件时保留安装包及依赖包或者自动下载安装包及相关依赖包

    CentOS上安装某个软件一般都有很多相关的依赖包,当然,这也与我们安装时software selection步骤中选择的版本有关系,我们服务器在安装CentOS时一般选择Basic Web Serv ...

  4. 把app(apk和ipa文件)安装包放在服务器上供用户下方法

    怎么把app(apk和ipa文件)安装包放在服务器上供用户下载? IIS服务器网站不能下载.apk文件的原因:IIS的默认MIME类型中没有.apk文件,所以无法下载.解决办法:给.apk格式文件添加 ...

  5. 修改visual studio setup 安装顺序(解决新版安装包无法自动移除老版本程序的问题)

    背景 visual studio setup 支持自动删除之前版本的安装,需要设置RemovePreviousVersions = true, DetectNewerInstalledVersion ...

  6. 华为手机,删除安装包apk

    1.下载“文件管理”,完成安装后,打开文件管理. 2.找到安装包,单击. 3.长按想要删除的apk文件,页面上会出现垃圾箱的图标,点击垃圾箱即可完成删除.

  7. Android -- Apk安装简诉

    安装涉及到如下几个目录 system/app  ​ 系统自带的应用程序,无法删除 data/app   用户程序安装的目录,有删除权限. 安装时把apk文件复制到此目录 ​ data/data  存放 ...

  8. Android APK安装过程学习笔记

    1.什么是APK APK,即Android Package,Android安装包.不同平台的安装文件格式都不同,类似于Windows的安装包是二进制的exe格式,Mac的安装包是dmg格式.APK可以 ...

  9. Linux 环境编译安装mysql (源码安装包)

    标注: Linux需要先配置网络yum源,确定yum能在线安装软件包,方便测试过程中安装部分依赖包.配置163网易提示的网络yum源参考博客  http://www.cnblogs.com/zoulo ...

随机推荐

  1. 2014秋C++ 第9周项目 循环程序设计

    课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703.课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课 ...

  2. (转)pip和easy_install使用方式

    easy_install 跟 pip 都是 Python 的套件管理程式,有了它們,在使用 Python 開發程式的時候會帶來不少方便. easy_install 和 pip 有什麼不一樣?據 pip ...

  3. JAVA i++于++i的区别

    大家看一下下面一个程序: 一.问题说明 Test.java public class Test { public static void main(String[] args) { int i = 1 ...

  4. JavaBean与XML转换——XStream使用笔记

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6648131.html  一:View层与Control层的数据交互 做过Web项目的人都知道,当对一个requ ...

  5. JavaWeb应用项目部署到云ubuntu

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6383068.html 在前面的博文中,我们已经在云主机ubuntu上搭建好jdk.tomcat以及mysql了 ...

  6. Maven让资源文件处理插件能够解析资源文件中的Maven属性

    <build> <resources> <resource> <directory>${project.basedir}/src/main/resour ...

  7. java 从spring容器中获取注入的bean对象

      java 从spring容器中获取注入的bean对象 CreateTime--2018年6月1日10点22分 Author:Marydon 1.使用场景 控制层调用业务层时,控制层需要拿到业务层在 ...

  8. 【Linux】eclipse juno 边框过大的调整方法

    切换至eclipse目录: vi plugins/org.eclipse.platform_4.2.*/css/e4_default_gtk.css 找到.MPartStack,替换成如下代码: .M ...

  9. 转 PHP5+APACHE2.2配置

    初学php,配置起来老出问题,找了篇不错的帖子,一试就通过了,所以就顺带着转了过来. 不过在我安装phpMyAdmin的时候还是发现这篇文章的一个问题,就是php.ini如果放在system32下,启 ...

  10. 三种常用的MySQL建表语句

    MySQL建表语句是最基础的SQL语句之一,下面就为您介绍最常用的三种MySQL建表语句,如果您对MySQL建表语句方面感兴趣的话,不妨一看. 1.最简单的: CREATE TABLE t1(    ...