需要实现此功能,一般实际开发是在自动版本更新上,当更新完开始自动安装完毕后,删除内存卡里的安装包。实现方式很简单,监听应用广播,获取内存卡下的文件,删除!
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. AI单挑Dota 2世界冠军:被电脑虐哭……

    OpenAI的机器人刚刚在 Dota2 1v1 比赛中战胜了人类顶级职业玩家 Denti.以建设安全的通用人工智能为己任的 OpenAI,通过“Self-Play”的方式,从零开始训练出了这个机器人. ...

  2. Android 原生 Android ActionBar

    本文内容 关于 ActionBar 必要条件 项目结构 环境 演示一:Action Bar 显示隐藏 演示二:Action Item 显示菜单选项 演示三:Action Home 启用"返回 ...

  3. 电脑技巧 如何保存网页为PDF

    安装Adobe Acrobat X pro(要安装版本,不要绿色版),完成之后再打印机里面可以看到添加了新的Adobe PDF打印机   对于任意的Office文档,都可以直接打印到PDF得到PDF文 ...

  4. ActiveMQ面试专题

    https://blog.csdn.net/belvine/article/details/79399798

  5. zeroclipboard实现多浏览器复制到粘贴板功能

    zeroclipboard实现多浏览器复制到粘贴板功能(单个复制按钮和多个复制按钮) 为了更好的用户体验,现在很多网站中文本框的内容只需要点击复制按钮这样就能把内容复制到粘贴板了:出于兼容性的考虑,基 ...

  6. ZH奶酪:Ubuntu 14.04配置LAMP(Linux、Apache、MySQL、PHP)

    ZH奶酪:Ubuntu 14.04安装LAMP(Linux,Apache,MySQL,PHP) 之前已经介绍过LAMP的安装,这边文章主要讲解一下LAMP的配置. 1.配置Apache (1)调整Ke ...

  7. wwindows文件放入linux后多出换行符

    将 windows文件移到linux系统下会在文件行末尾多了一个换行符^M 使用命令cat -v tmp.c可以看到每行后边有^M字符 为了解决这个问题,我们用如下命令:touch love_tmp. ...

  8. C#让控制台程序不显示闪退窗口的方法

    新建一个控制台程序,然后编译为 窗体程序.即可........

  9. Javascript 思维导图 绘制基础内容(值得一看)

    来源于:http://www.cnblogs.com/coco1s/p/3953653.html javascript变量 javascript运算符 javascript数组 javascript流 ...

  10. linux获取精准进程PID之pgrep命令

    pgrep 是通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行.在服务器的配置和管理中,这个工具常被应用,简单明了. 用法: #pgrep [选项] [程序名] pgrep [-flvx ...