需要实现此功能,一般实际开发是在自动版本更新上,当更新完开始自动安装完毕后,删除内存卡里的安装包。实现方式很简单,监听应用广播,获取内存卡下的文件,删除!
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. Office办公 WPS如何设置页边距

    打开页眉页脚,在选项里面可以设置顶部的一行文字距离边界的距离   此外在页面布局,页边距也可以查看和修改                        

  2. C++ 第八课 标准c字符和字符串

    atof() 将字符串转换成浮点数 atoi() 将字符串转换成整数 atol() 将字符串转换成长整型数 isalnum() 当字母或数字字符时, 返回真值 isalpha() 当字母字符时, 返回 ...

  3. spring mvc mongoDb

    http://www.cnblogs.com/dennisit/p/3372568.html 系统环境: 操作系统:  windows xp 数 据 库:  mongodb2.0.6 驱 动 包: S ...

  4. Ubuntu 12.04.1 mysql从5.5升级到5.6

    Ubuntu 12.04.1 mysql从5.5升级到5.6 1 2 3 4 5 apt-cache search mysql-server sudo  apt-add-repository ppa: ...

  5. JAVA设计模式——第 7 章 门面模式【Facade Pattern】(转)

    好,我们继续讲课.大家都是高智商的人,都写过纸质的信件吧,比如给女朋友写情书什么的,写信的过程大家都还记得吧,先写信的内容,然后写信封,然后把信放到信封中,封好,投递到信箱中进行邮递,这个过程还是比较 ...

  6. IntelliJ IDEA安装主题详细步骤

    主题下载网址:http://color-themes.com/?view=index 本文测试的软件版本:IntelliJ IDEA 2016.1.2 一.下载主题包   1 1. 打开上述网址(ht ...

  7. WIP 005 - Implement the search result page

    Need to show the search result in a tablewalker You can show the tablewalker in the search page whic ...

  8. Android基础新手教程——1.10 反编译APK获代替码&amp;资源

    Android基础新手教程--1.10 反编译APK获代替码&资源 标签(空格分隔): Android基础新手教程 本节引言: "反编译Apk".看上去好像好像非常高端的样 ...

  9. Executor并发框架--线程池,ThreadToolExecutor初步

    Executor存在的目的是提供一种将"任务提交"与"任务如何运行"分离开来的机制.虽然只有一个方法,但是却为灵活且强大的异步任务执行框架提供了基础.它提供了一 ...

  10. JNI 数据类型转换

    一. 把java中的string 转化成 c中的char数组 /** *Jstring2CStr 把java中的string 转化成 c中的char数组. *jstring jstr 要被转化的jav ...