android卸载程序代码

2024-05-15 10:18
文章标签 android 卸载 程序代码

本文主要是介绍android卸载程序代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

安装:

Java代码   收藏代码

String str = "/CanavaCancel.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);  

卸载: <uses-permission  android:name="android.permission.DELETE_PACKAGES"></uses-permission>       

Java代码   收藏代码

Uri packageURI = Uri.parse("package:com.demo.CanavaCancel");     

Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);     

startActivity(uninstallIntent);  

  Environment拥有一些可以获取环境变量的方法 
package:com.demo.CanavaCancel  这个形式是 package:程序完整的路径 (包名+程序名).
下载apk程序代码:
Java代码   收藏代码

protected File downLoadFile(String httpUrl) {  

                // TODO Auto-generated method stub  

                final String fileName = "updata.apk";  

                File tmpFile = new File("/sdcard/update");  

                if (!tmpFile.exists()) {  

                        tmpFile.mkdir();  

                }  

                final File file = new File("/sdcard/update/" + fileName);  

  

                try {  

                        URL url = new URL(httpUrl);  

                        try {  

                                HttpURLConnection conn = (HttpURLConnection) url  

                                                .openConnection();  

                                InputStream is = conn.getInputStream();  

                                FileOutputStream fos = new FileOutputStream(file);  

                                byte[] buf = new byte[256];  

                                conn.connect();  

                                double count = 0;  

                                if (conn.getResponseCode() >= 400) {  

                                        Toast.makeText(Main.this"连接超时", Toast.LENGTH_SHORT)  

                                                        .show();  

                                } else {  

                                        while (count <= 100) {  

                                                if (is != null) {  

                                                        int numRead = is.read(buf);  

                                                        if (numRead <= 0) {  

                                                                break;  

                                                        } else {  

                                                                fos.write(buf, 0, numRead);  

                                                        }  

  

                                                } else {  

                                                        break;  

                                                }  

  

                                        }  

                                }  

  

                                conn.disconnect();  

                                fos.close();  

                                is.close();  

                        } catch (IOException e) {  

                                // TODO Auto-generated catch block  

  

                                e.printStackTrace();  

                        }  

                } catch (MalformedURLException e) {  

                        // TODO Auto-generated catch block  

  

                        e.printStackTrace();  

                }  

  

                return file;  

        }  

打开APK程序代码:
Java代码   收藏代码

private void openFile(File file) {  

                // TODO Auto-generated method stub  

                Log.e("OpenFile", file.getName());  

                Intent intent = new Intent();  

                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  

                intent.setAction(android.content.Intent.ACTION_VIEW);  

                intent.setDataAndType(Uri.fromFile(file),  

                                "application/vnd.android.package-archive");  

                startActivity(intent);  

        }  

这篇关于android卸载程序代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/991556

相关文章

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class

一文详解SpringBoot中控制器的动态注册与卸载

《一文详解SpringBoot中控制器的动态注册与卸载》在项目开发中,通过动态注册和卸载控制器功能,可以根据业务场景和项目需要实现功能的动态增加、删除,提高系统的灵活性和可扩展性,下面我们就来看看Sp... 目录项目结构1. 创建 Spring Boot 启动类2. 创建一个测试控制器3. 创建动态控制器注

如何在Mac上彻底删除Edge账户? 手动卸载Edge浏览器并清理残留文件技巧

《如何在Mac上彻底删除Edge账户?手动卸载Edge浏览器并清理残留文件技巧》Mac上的Edge账户里存了不少网站密码和个人信息,结果同事一不小心打开了,简直尴尬到爆炸,想要卸载edge浏览器并清... 如果你遇到 Microsoft Edge 浏览器运行迟缓、频繁崩溃或网页加载异常等问题,可以尝试多种方

Android DataBinding 与 MVVM使用详解

《AndroidDataBinding与MVVM使用详解》本文介绍AndroidDataBinding库,其通过绑定UI组件与数据源实现自动更新,支持双向绑定和逻辑运算,减少模板代码,结合MV... 目录一、DataBinding 核心概念二、配置与基础使用1. 启用 DataBinding 2. 基础布局

Android ViewBinding使用流程

《AndroidViewBinding使用流程》AndroidViewBinding是Jetpack组件,替代findViewById,提供类型安全、空安全和编译时检查,代码简洁且性能优化,相比Da... 目录一、核心概念二、ViewBinding优点三、使用流程1. 启用 ViewBinding (模块级

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio