`
zhangfy068
  • 浏览: 143937 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

卸载安装应用,在线升级

 
阅读更多
安装程序的方法:

1、通过Intent机制,调出系统安装应用,重新安装应用的话,会保留原应用的数据。
String fileName = Environment.getExternalStorageDirectory() +apkName;  
Uri uri = Uri.fromFile(new File(fileName));  
Intent intent =new Intent(Intent.ACTION_VIEW);  
intent.setDataAndType(uri,"application/vnd.android.package-archive");  
startActivity(intent);  
复制代码
2、直接调用安装接口。
Uri mPackageURI = Uri.fromFile(new File(Environment.getExternalStorageDirectory() + apkName));  
int installFlags = 0;  
PackageManager pm = getPackageManager();  
try  
{  
PackageInfo pi = pm.getPackageInfo(packageName,  
PackageManager.GET_UNINSTALLED_PACKAGES);  
if(pi !=null)  
{  
installFlags |= PackageManager.REPLACE_EXISTING_PACKAGE;  
}  
}  
catch (NameNotFoundException e)  
{}  
PackageInstallObserver observer =new PackageInstallObserver();  
pm.installPackage(mPackageURI, observer, installFlags);  
复制代码
安装应用权限:android.permission.INSTALL_PACKAGES
系统应用(安装在/system/app下面)可以采用该方式,第三方应用无法申请安装卸载权限。
java.lang.SecurityException: Neither user 10039 nor current process has android.permission.INSTALL_PACKAGES.
3、执行install命令。
install –r 更新安装,默认新安装;如果不附上-r参数,则会清楚原应用的数据,版本一致则无法安装。
(1)am start …
(2)Runtime.exec(String[] args)
(3)Class<?> execClass = Class.forName("android.os.Exec");
4、执行cp / adb push命令。
由系统检测到应用程序有更新,自动完成重新安装。
卸载程序的方法:
1、通过Intent机制,调出系统卸载应用。
UripackageURI = Uri.parse("package: your.app.id");  
Intent intent =new Intent(Intent.ACTION_DELETE);  
startActivity(intent);  
复制代码
2、直接调用卸载接口。
PackageInstallObserver observer =new PackageInstallObserver();  
pm.installPackage(mPackageURI, observer, installFlags);
复制代码
卸载应用权限:android.permission.DELETE_PACKAGES
3、运行rm apk安装文件,由系统检测后调用卸载应用。

 

 

用户可以从market上直接下载下来直接

安装

就可以了,会自动识别覆盖的,除非你把版本调低了

1.   <manifest xmlns:android="http://schemas.android.com/apk/res/android"

2.       package="com.xx.xx" 包名

3.       android:versionCode="X" 版本号

4.       android:versionName="xxx"> 版本名

5. 

复制代码

就是修改这个versionCodeversionName



代码安装apk

1. Intent i = new Intent(Intent.ACTION_VIEW);  

2. String filePath = "/sdcard/XXX.apk";  

3. i.setDataAndType(Uri.parse("file://" + filePath),"application/vnd.android.package-archive");  

4. context.startActivity(i);

5. 

复制代码

程序卸载

1. Intent intent = new Intent(Intent.ACTION_DELETE, uri);

2. intent.startActivity();

3. 

复制代码

文件下载

DownloadProvider的权限级别改成 normal了就可以使用了 网上也有说明

 

首先要在

Android

Manifest.xml中申请访问DownloadManager的权限

1. <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"/>

2. 

复制代码

1. ContentValues values = new ContentValues();

2.          values.put(Downloads.URI, url);//指定下载地址

3.         values.put(Downloads.COOKIE_DATA, cookie);//如果下载Server需要cookie,设置cookie

4.         values.put(Downloads.VISIBILITY,Downloads.VISIBILITY_HIDDEN);//设置下载提示 是否在屏幕顶部显示

5.         values.put(Downloads.NOTIFICATION_PACKAGE, getPackageName());//设置下载完成之后回调的包名

6.         values.put(Downloads.NOTIFICATION_CLASS, DownloadCompleteReceiver.class.getName());//设置下载完成之后负责接收的Receiver,这个类要继承 BroadcastReceiver     

7.         values.put(Downloads.DESTINATION,save_path);//设置下载到的路径,这个需要在Receiver里 自行处理

8.         values.put(Downloads.TITLE,title);//设置下载任务的名称

9.         this.getContentResolver().insert(Downloads.CONTENT_URI, values);//将其插入到DownloadManager的数据库中,数据库会触发修改事件,启动下载任务

10. 

11. 

12. ContentValues values = new ContentValues();

13.         values.put("uri", uri.toString());

14.         values.put("useragent", "Mozilla/5.0 (Linux; U; Android 1.5; en-us; sdk Build/CUPCAKE) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1");

15.         values.put("notificationpackage", getPackageName());

16.         values.put("notificationclass", "HelloWorld");

17.         values.put("visibility", 1);

18.         values.put("mimetype", mimetype);

19.         values.put("hint", filename);

20.         values.put("description", uri.getHost());

21.         values.put("total_bytes", 1349528);

22.         

23.         mResolver = getContentResolver();

24.         mResolver.insert(Uri.parse("content://downloads/download"), values);

25. 

复制代码

<!--EndFragment-->
分享到:
评论

相关推荐

    Android监听应用程序安装和卸载

    Android中的监听应用程序如何安装和卸载

    WPF自定义安装卸载

    对wpf不怎么熟悉,打包工具打包出来的又很丑,网上几乎找不到这类资源就自己研究了下写了一个,整理了个Demo放上来供大家参考,自定义安装和卸载,安全软件和控制面板程序都能识别和调用自定义的卸载。代码简单有...

    安卓全机型卸载预装软件(免Root)

    安装到手机上面可以查看应用原始包名 4---请明白具体应用在进行卸载操作。个别系统应用卸载后会导致系统不进系统等等 5---资源需要开启usb调试装好联机驱动然后运行工具按步骤操作 6---需要动手能力较强的友友操作 7...

    解决Win 10与不兼容VirtualBox操作过程文档+(附带软件).zip

    配套博客标题(完美解决)升级win10,提示VirtualBox 立即卸载此应用,因为它与Windows 10 不兼容 适用人群:在线更新Windows或者离线更新Windows的人群 解压之后打开文件夹【附带软件】之中的EXE文件,等待5-6秒...

    Android应用使用Inotify机制监听自身卸载

    详细请参考我的技术博客:http://blog.csdn.net/allen315410/article/details/42555415

    WindowsInstaller,提供了一种标准化的方式来安装、升级、修复和卸载应用程序 免费下载

    提供一种可靠的方法来安装、卸载、配置和更新应用程序。它能收集与安装或更新有关的信息,并在执行安装程序时向用户提供易于理解的消息。它还能捕获安装相关的实体信息,比如硬盘空间、内存、CPU和计算机名称。

    无法卸载 Office 2003 \2007

    2438651 如何解决在 Windows 计算机上安装、卸载或升级程序时可能出现的问题 虽然 Windows 安装程序清理实用程序解决了一些安装问题,但有时它会损坏计算机上安装的其他组件。因此,已从 Microsoft 下载中心删除该...

    InstallUsingGPOTools:通过GPO安装应用程序或更新的PowerShell脚本

    电源外壳使用GPO工具安装该项目包含用于通过GPO安装应用程序或更新的脚本。概述它包含两个PowerShell脚本,这些脚本将安装应用程序或Windows QFE更新。 这些脚本旨在与“启动/登录” GPO脚本一起使用,以安装这些...

    IObitUninstaller Pro 10.3.0.13 特别版 - 轻量级软件卸载清理工具

    IObitUninstaller是款强悍的驱动级软件卸载工具,有强制卸载、批量卸载、安装监视器、文件粉碎、软件健康检查、卸载Windows更新补丁、移除浏览器工具栏和插件等功能。 v10.3 -增强残留扫描功能以清除更多文件和...

    系统应用卸载 Uninstaller Portable v9.3.0.11.zip

    系统应用卸载IObit Uninstaller是一款可以卸载系统自带应用的小软件,智能筛选可不用保留的自动软件 禁止自动升级,去主界面底部文字广告,去除操作中心推广程序; 去主菜单多余项:反馈、检查更新、用户手册、...

    基于AMEsim的立柱卸载振动机理分析

    以某型千升级大流量液控单向阀为研究对象,应用AMEsim软件建立液压支架液控单向阀卸载冲击实验模型并仿真。得出液控单向阀在立柱降柱时的振动分小阀芯振动、大小阀芯同时振动的结论,通过受力分析发现2次振动的主要...

    安川-Android系统应用软件Sigma-注意事项.pdf

    下载本应用软件的升级版本时,请先卸载原有的应用软件。 卸载完成后再进行新版本的安装。 ※本应用软件,在语言设定为日文的 Android 手机或平板电脑上有可 能无法安装。 应用软件规格   如果您需要了解更多产品...

    SQL_SERVER_2008升级SQL_SERVER_2008_R2两种办法

    一、卸载SQL SERVER 2008,一定要卸载,数据库不像其他常用的应用程序(那些程序会自动检测是否有旧版本,然后给你卸载并升级)。 另:对SQL来说,如果你安装好之后,再进行一次安装的话,实际上安装的是另外一个...

    基于Thinkphp6+Element的插件化后台管理系统

    安装包7MB大小,拥有一键生成代码功能、无需写页面快速增删改查、资源管理、权限管理、通用的会员模块、系统分类、多语言配置、基础配置、系统日志、钩子事件、应用插件扩展功能,在线安装卸载升级应用插件。...

    适用于 Windows 的 NVM,管理 Windows 计算机上的多个 Node.js 安装

    安装和升级 让 NVM for Windows 正常运行的最简单(推荐)方法是在安装 NVM for Windows之前卸载任何先前安装的 Node。它避免了下面列出的所有陷阱。然而;如果您已经高度自定义了 Node 安装,您可能不希望对其进行...

    WIN10升级提示关闭工具IDontWantWindows10V4.0免费安装版

    win10升级提示关闭工具I Don't Want Windows 10是一个简化的卸载程序针对初级用户不需要手动关闭更新代号为kb3035583。换句话说,它基本上卸载gwx.exe应用程序及其所有相关内容,从你的系统中只需点击几下鼠标。虽然...

    安卓版豌豆荚V4.24.1.7913

    高效管理手机应用、音乐、图片及视频,支持应用一键升级、卸载及批量移动,让手机内容变得更加有序! 全新的应用推送功能,在网页上轻轻一点就可以魔术般的安装应用到手机。(需要手机连接 Wi-Fi 并登录豌豆荚账号)...

    AppMgr III Pro 4.68.apk

    ★批量卸载应用程序 ★批量移动应用程序到外部存储 ★通知安装可移动应用程序 ★从应用程序抽屉隐藏应用程序 ★冻结应用程序到停止状态 ★1 - 点击清除所有缓存 ★批清除应用程序缓存或数据 ★在Google Play上批量...

    最佳 HELM 教程: k8s集群编排工具helm3实战教程资料

    Helm 是 Deis 开发的一个用于 Kubernetes 应用的包管理工具,主要用来管理 ...对于使用者而言,使用 Helm 后不用需要编写复杂的应用部署文件,可以以简单的方式在 Kubernetes 上查找、安装、升级、回滚、卸载应用程序。

    创维酷开电视刷机、升级、救砖,ADB手册

    创维酷开电视刷机、升级、救砖,ADB手册 酷开,原先是创维电视旗下的一个产品系列,之后独立出来成为了一个子品牌。本文所说的酷开,指的是子品牌独立后所出产的那些产品,而非是仍归于创维旗下的酷开系列产品,最...

Global site tag (gtag.js) - Google Analytics