Android中启动,分享,卸载应用程序
一、启动一个程序
private void startApp() { // 创建PackageManager对象PackageManager pm = getPackageManager();try {/** flag的作用:标识加载清单文件中的那部分内容,默认不会加载application节点下的内容。* google工程师这样做是为了提升加载的效率,一般我们想获取PackageInfo的信息,大多数获取包名,版本信息等。---懒加载* 一个应用程序中有很多activity节点,如果需要加载activity节点信息,则需要显示的指明。*/PackageInfo infos = pm.getPackageInfo(appInfo.getPackageName(), PackageManager.GET_ACTIVITIES);ActivityInfo[] activities = infos.activities;if (activities != null && activities.length > 0) { //activities有可能为空,有的应用程序没有activity,比如服务,广播。ActivityInfo activityInfo = activities[0]; //一般activities[0]表示启动activityString className = activityInfo.name;Intent intent = new Intent(); //启动应用程序intent.setClassName(appInfo.getPackageName(), className);startActivity(intent);} else {Toast.makeText(getApplicationContext(), "亲,不能启动该系统程序", Toast.LENGTH_SHORT).show();}} catch (NameNotFoundException e) {e.printStackTrace();}
}
只要配置了该intent-filter的应用都会接受到该请求。如果其他程序发送分享请求时,想让自己的程序也获得请求,则需要创建一个Activity,并设置动作和数据类型
private void shareApp() {Intent intent = new Intent();intent.setAction("android.intent.action.SEND");intent.addCategory("android.intent.category.DEFAULT");intent.setType("text/plain"); //发送的类型intent.putExtra(Intent.EXTRA_TEXT, "亲,强烈推荐使用" + appInfo.getApp_name() + "软件,下载地址:http://google.play.com");startActivity(intent);
}
三、卸载应用程序
private void uninstallApp() {Intent intent = new Intent();intent.setAction("android.intent.action.DELETE");intent.addCategory("android.intent.category.DEFAULT");intent.setData(Uri.parse("package:" + appInfo.getPackageName()));startActivityForResult(intent, 0);
}
卸载程序后需要刷新listview显示内容,可以在代码中注册一个广播,用于接受程序卸载完成后系统发送的广播。
private void regesterUninstallReceiver() {UninstallReceiver uninstallReceiver = new UninstallReceiver();IntentFilter filter = new IntentFilter();filter.addAction("android.intent.action.PACKAGE_REMOVED"); //当应用程序被卸载完成后,系统发出的广播动作filter.addDataScheme("package"); //android4.0以后需要添加该类型registerReceiver(uninstallReceiver, filter);
}
Android中启动,分享,卸载应用程序相关推荐
- 如何从Android中的另一个应用程序启动活动
我想从我的Android应用程序启动已安装的软件包. 我认为可以使用意图,但是我没有找到一种方法. 有链接,在哪里可以找到信息? #1楼 我知道已经回答了,但是这是我实现类似内容的方法: Intent ...
- Android中启动Activity(startActivity)流程图分析
在上篇博文< Android中ActivityManagerService与应用程序(客户端)通信模型分析>中,我们从宏观架构上掌握 ActivityManagerService与应用程序 ...
- Android中启动一个服务,Android服务的两种启动方式
前言:Service是Android的四大组件之一,也是可执行的程序.服务是Android中实现程序后台运行的解决方案,非常适合去执行那些不需要和用户交互而且还要求长期运行的任务.Service的启动 ...
- jdk12源代码文件_在JDK 11中启动单文件源代码程序
jdk12源代码文件 JEP 330 –启动单文件源代码程序是即将发布的JDK 11(18.9)发行版中令人兴奋的功能之一. 此功能允许直接使用java解释器执行Java源代码. 源代码在内存中编译, ...
- 在JDK 11中启动单文件源代码程序
JEP 330 –启动单文件源代码程序是即将发布的JDK 11(18.9)发行版中令人兴奋的功能之一. 此功能允许直接使用java解释器执行Java源代码. 源代码在内存中编译,然后由解释器执行. 限 ...
- Android -- 开机启动无界面后台程序
简单的说,这是一个没有界面的后台运行的应用程序 而且,还有一功能:开机自启动,启动运行一个服务 程序结构非常简单,两个类,一个是service的扩展类,一个是BroadcastReceiver扩展类 ...
- Android企业微信分享到小程序
1.官方文档 Android应用 - 接口文档 - 企业微信开发者中心https://developer.work.weixin.qq.com/document/path/91196 2.创建应用 登 ...
- 解决应用和功能列表中存在已卸载的程序
现象描述 在测试公司的新产品时,发现卸载该程序后,windows的应用和功能列表中仍有残留的记录.和以往自己在日常使用时遇到情况不同,这些残留记录的修改.删除按钮是可用的而非灰色状态.点击修改或删除, ...
- android中的照相机机拍照程序(含连续拍照)
最近用到了android中的照相机功能,android中实现拍照的方式有两种,一种是调用系统自带的照相机进行拍照,此种方法较为简单,因为是android本身就已经实现了的:另一种就是自己来实现一个拍照 ...
最新文章
- Linux各发行版流行度统计数据与排名
- SDUT2165:Crack Mathmen(快速幂)
- SAP的client概念
- Android NDK 环境搭建
- SX-BOX试用笔记
- shell脚本和常用命令
- WebAPI基本封装
- Halcon 找圆测量工具
- zoom 更改安装位置_如何以Zoom更改会议主持人
- 对个人来说,最好的记账方法是什么?
- Chinaitlab技术及认证专题大全[第二辑] 09年8月03日更新
- 编程实现对率回归,并给出西瓜数据集 3.0α 上的结果.
- Ctrl、Alt、Shift常用的电脑快捷键大全(收藏级)
- python案例3:货币转换---初级
- MySQL5.6 GTID
- 入门人工智能历程,学习西瓜书的体验心得
- Alibaba Cloud Linux版本linux下mysql8.0安装
- Convex Optimization
- leetcode 61 旋转链表 c++
- 从小沉默寡言,如今做主播“一夜一套房”:不说话的人,一开口就已经赢了!...