程序的启动、卸载和分享

软考 系统架构设计师历年真题集萃(248) 阅读详情

程序的启动、卸载和分享

  1. 启动

     /**
     * 开启一个应用程序
     */
    private void startApk() {
        PackageManager pm = getPackageManager();
        try {
        // 原来的时候我们在得到PakageInfo的时候第二个参数都是设置为0.这个PackageInfo代表的就是某个程序的清单文件,
        // 默认情况下在解析这个清单文件的时候得到的只是清单文件中的一些版本信息的等这些常用的内容,因为要获取更多的内容需要解析更多的内容,
        // 就会消耗时间消耗资源,所以默认的时候都是只解析一些常用的,当我们要获取Activity等这些的时候就要给它一个标记,让它知道多解析这些你想要得到的内容,
        // 如果我们想得到里面的activity或者service等这些啊就必须将第二个参数设置为相应的PackageManager.GET_ACTIVITYS等
            PackageInfo info = pm.getPackageInfo(selectedAppInfo.getPackname(),PackageManager.GET_ACTIVITIES);
            ActivityInfo[] activityInfos = info.activities;//获取清单中所有Activity信息的数据
            if (activityInfos != null && activityInfos.length > 0) {//由于一些服务或者接收者等没有Activity所以这里必须进行判断
                ActivityInfo activitInfo = activityInfos[0];//清单文件中配置的第一个Activity就是程序的启动Activity
                Intent intent = new Intent();
                intent.setClassName(selectedAppInfo.getPackname(),activitInfo.name);//这个activityInfo就是清单中activity节点的name,这样就能得到Activity的全类名
                startActivity(intent);
            } else {
                Toast.makeText(this, "无法启动应用程序", 0).show();
            }
        }
    }
  2. 卸载

    安卓系统提供了程序的卸载Activity,我们只要调用它的卸载就可以了,也是系统的PackageInstaller中的
    Intent intent = new Intent();
    intent.setAction("android.intent.action.VIEW");
    intent.setAction("android.intent.action.DELETE");
    intent.addCategory("android.intent.category.DEFAULT");
    intent.setData(Uri.parse("package:" + selectedAppInfo.getPackname()));//意图的数据必须是package://和包名
    startActivity(intent); 
  3. 分享

    就是启动出来信息的发送页面,将内容给填充进去所以这里要启动系统发送短信的Activity,要用到系统发送短信的Activity

    /**
     * 分享一个应用程序
     */
    private void shareApk() {
        Intent intent = new Intent();
        // <intent-filter>
        // <action android:name="android.intent.action.SEND" />
        // <category android:name="android.intent.category.DEFAULT" />
        // <data android:mimeType="text/plain" />
        // </intent-filter>
        intent.setAction(Intent.ACTION_SEND);
        intent.addCategory(Intent.CATEGORY_DEFAULT);
        intent.setType("text/plain");
        intent.putExtra(
                Intent.EXTRA_TEXT,
                "推荐你使用一款软件,名称为" + selectedAppInfo.getAppName()
                        + "下载地址:google play xxx,版本:"
                        + selectedAppInfo.getVersion());
        startActivity(intent);
    } 

    谷歌工程师在设计这个程序的时候,任何应用程序如果想使用分享的功能都可以通过实现它的Intent来实现,点击的时候可以选择不同的程序,同样也能分享到微博,
    邮件等程序


  • 邮箱 :charon.chui@gmail.com
  • Good Luck!
Vue3 - Element Plus 表格组件 el-table “表格行数据中又嵌套了二维对象数组“,按平级循环渲染(嵌套数组视为同级行数据), 对嵌套的数组循环展示为表格,智能合并行或列详细教程 vue3,nuxt3,element-plus,table表格组件,el-table,vue3element表格组件,数据中有二维数组怎么遍历循环显示,表格数据带二级数组怎么循环渲染显示,表格数据中存在一个数组要怎么才能显示到表格,el-table表格合并详细教程示例,table表格如果对象里面还有对象数组那该怎么去渲染,平常都是数组中一个对象渲染成一行,每行中还有嵌套数组怎么办,每个行数据下还有一个数组怎么显示,怎么把表格相同的数据合并为一行,合并上下两行相同数据单元格,合并行或列如果遇到相同单元格就合 阅读详情

相关推荐

GNSS接收机性能测试指标详解:TTFF、位置精度、灵敏度等关键参数如何评估

本文详细解析了GNSS接收机性能测试的关键指标,包括首次定位时间(TTFF)、位置精度、灵敏度等,帮助工程师系统评估接收机性能。通过多频段协同定位和载波相位测试等技术,提升定位精度至亚米级。同时,介绍了灵敏度测试的极限挑战和授时精度的专业测试方案,为GNSS接收机的性能优化提供实用指导。

cuda7parallel的博客 971

strongswan——IKE建立过程

strongswan的主进程为charon进程,负责IKE SA、IPSec SA建立、拆除、更新及其他相关的操作。 charon进程默认通过socket-default插件与内核交互,用于IKE协议报文的收发。socket-default插件被编译为动态库,charon进程启动的时候,在初始化阶段动态加载。如下图 Socket-default通过poll机制阻塞等待内核收到的IKE协议报...

weixin_30498807的博客 1296

电机传动机构的转矩与惯量折算

参考《工业运动控制》

庐州牧 1万+

进程启动与动态加载库信息

通过ipsec start命令启动 ipsec 实际是一个可执行脚本,放在/usr/local/sbin下,他实际调用了/usr/local/libexec/ipsec/目录下的starter。 通过ldd命令可以查看相关进程的依赖库信息。 [root@flexbng-dev ipsec]# ll total 560 -rwxr-xr-x. 1 root

xingyeping的博客 1632

vcenter server6.0上vmware inventory 、virtualvcenter等服务无法开启

描述:一天,vcenter访问不了,因此Windows远程到vcenter server上。相关服务未开启,开启virtualCenter server服务提示相关依赖服务未开启,于是开启依赖项服务Inventory服务报错。然后打算使用 C:\Program Files\VMware\vCenter Server\bin\servcivce-control来开启vmware服务 1....

Pespi_Co1a的博客 3072

【eclipse】win 10:eclipse 4.9 下载、安装和汉化(支持中英切换)

目录 一、eclipse下载 二、eclipse安装 三、eclipse在线汉化 四、eclipse离线汉化(推荐) 一、eclipse下载 ①官网下载地址(收费):https://www.eclipse.org/downloads/点击前往下载 ②【推荐】我的百度网盘下载地址(包括离线汉化包):点击下载 提取码:0nfw ③eclipse4.9其他地址下载:http...

顾三殇 —— 博客空间(软件测试) 1万+

strongswan介绍

strongswan介绍文档翻译

wq897387的专栏 2万+

Unity-Mirror网络框架-从入门到精通之MultipleMatches示例

Multiple Matches 示例主要讲述了如何在使用 Mirror 网路框架时管理多个游戏匹配。以及如何设置一个能够同时支持多个游戏会话的系统,使玩家能够加入他们所选择的比赛,而不是强制他们加入一个单一的匹配。

TxNet 965

任务管理器(ActivityManager)

任务管理器(ActivityManager)Android中ActivityManager类似于Windows下的任务管理器,能得到正在运行程序的内容等信息 List 邮箱 :charon.chui@gmail.com Good Luck!

Charon_Chui的专栏 1058

数据库小技能:数据导入脚本

背景:版本大升级,从2.0升级到3.0 ,服务端开发语言从c#换到java语言。数据库类型从microsalft sql server 换到mysql。数据来源于微信,用于查询卡bin。

专注于计算机研发知识和资讯分享 774

B.3【智能标注】:基于Labelstudio的UIE半监督深度学习的智能标注方案(云端版),提效。

Label Studio 所提供的 Machine Learning Backend 提供了一个比较灵活的辅助人工标注的框架,我们通过它确实可以加快 nlp 数据的标注Label Studio 的 enterprise 版本提供了 Active Learning 的流程,不过从其描述看这个流程并不完美,尤其是 fit 部分,由于 Label Studio 低估了「Train」所花费的时间,所以每次标注都自动训练的流程可能并不会那么顺滑(会在链接时候等待一段时间)

丨汀、的博客 1840

Linux 进程后台运行的几种方式(screen)

Ctrl+z/bg/nohup/setsid/&amp; 在Linux中,如果要让进程在后台运行,一般情况下,我们在命令后面加上&amp;即可,实际上,这样是将命令放入到一个作业队列中了: ./rsync.sh &amp; # jobs 但是如上方到后台执行的进程,其父进程还是当前终端shell的进程,而一旦父进程退出,则会发送hangup信号给所有子进程,子进程收到...

惨绿少年 | 欢迎访问CLSN博客站点 http://clsn.io 450

100个Python实战项目(七)实现摩斯密码翻译器

作者主页:海拥 作者简介:优快云全栈领域优质创作者、HDZ核心组成员、蝉联C站周榜前十 粉丝福利:往期获奖记录 每周送6~9本书,不定期送各种小礼品(搪瓷杯、抱枕、鼠标垫、马克杯等) 摩斯密码是一种将文本信息作为一系列通断的音调、灯光或咔嗒声传输的方法,无需特殊设备,熟记的小伙伴即可直接翻译。它以电报发明者Samuel F. B. Morse的名字命名。 算法 算法非常简单。英语中的每个字符都被一系列“点”和“破折号”代替,或者有时只是单数的“点”或“

努力是为了站在万人之中,成为别人的光 1万+

进入程序、分享、卸载

1 case R.id.ll_start: /** 进入程序 */ 2 try { 3 // 获取所有的包信息 4 PackageInfo info = getPackageManager().getPackageInfo( 5 ...

dianwei5413的博客 126

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Android - 安装及卸载应用,启动应用程序,分享,详细信息

intent.addCategory(“android.intent.category.DEFAULT”); intent.setDataAndType( Uri.fromFile(new File(apk_path)), “application/vnd.android.package-archive”); startActivity(intent); 2.接收卸载应用程序的广播 AppUninstallReceiver receiver = new AppUninstallReceiver(); Int

m0_63737692的博客 486

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Android中如何用代码实现打开、卸载和分享其他已安装应用

在Android设备上我们经常可以看到一些软件比如360手机管家之类的管理软件,都有一个类似于软件管理的

苦咖啡的自留地 1006

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Android - 安装及卸载应用,启动应用程序,分享,详细信息,设备进程信息获取,获取进程占用RAM(1)

现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水!ACTION_PACKAGE_REPLACED 一个新版本的应用安装到设备,替换之前已经存在的版本。一些基础知识和理论肯定是要背的,要理解的背,用自己的语言总结一下背下来。

ghfgjfg679的博客 1072

Android源码--程序的分享、卸载、启动及详细信息

/* * 分享程序按钮 */ private void share() { // // // // // Intent intent = new Intent(); intent.setAction("android.intent.action.SEND"); intent.addCategory("android.intent.category

♛ 走心。的专栏 354

Android根据包名 启动 删除 应用

启动应用, 获取包名 和对应的启动Activity名字 PackageInfo info = getPackageManager().getPackageInfo(packname, PackageManager.GET_UNINSTALLED_PACKAGES | PackageManager.GET_ACTIVITIES); ActivityInfo[] activityI

windownew11的专栏 1755

installshiled 安装包制作-设置为安装后运行及卸载时先关闭程序然后卸载

最近因为一个项目,稍微研究了下installshield安装包的制作,因为安装包的制作

c350672883的专栏 4815

卸载MySQL

在服务列表中查找与MySQL相关的服务(这些服务的名称通常包含“MySQL”或“mysqld”)。这通常是你在安装MySQL时选择的目录,或者可以通过在“控制面板”的“程序和功能”中查看MySQL程序的属性来获取安装目录。在MySQL的安装目录下,找到“data”目录和MySQL的配置文件(通常是“my.ini”或“my.cnf”)。在“控制面板”的“程序和功能”中查看已安装的程序列表,确保没有MySQL相关的程序存在。在“运行”对话框中输入“services.msc”,然后点击“确定”或按Enter键。

W_code_chrome的博客 488

小白马卫士项目总结之程序管理

程序管理这个模块的话说起来也挺简单的,其实就是通过PackageManager这个类获取包的管理者对象然后再得到手机上所有程序的有关信息,包括程序的包名,名字,版本,图标等等!然后把它放在list集合中,然后通过适配器把它放在listView里面就可以了! 恩~~ 首先就是写一个程序信息的提供类,在这个类里面有得到应有程序的方法,还有判断出那个是用户程序

HuiMengNiTian的专栏 881

分享到系统面板_win7系统无法启动nvidia控制面板如何解决【解决方法】

  相信很多用户都清楚nvidia控制面板可以对显卡进行设置,提高显卡的性能,不过最近有位win7系统用户想要开启nvidia控制面板的时候却发现突然打不开了,用户不知道这是怎么回事,为此非常苦恼,那么win7系统无法启动nvidia控制面板怎么办呢?今天为大家分享win7系统无法启动nvidia控制面板的解决方法。  无法启动nvidia控制面板解决方法:  1、首先大家可以在添加删除程序里面完...

weixin_33988332的博客 305

分享-远程桌面

DShare 桌面分享軟件-------------------- 文件說明:DShare.exe  服務端程序DClient.exe 終端程序 工作方式:DShare.exe  監聽TCP端口,提供1對多的桌面分享服務,同時可查看控制終端桌面DClient.exe 連接服務端,接收服務端的分享服務,同時提供本機的桌面給服務端 主要功能:1、服務端可查看控制/多屏查看終端桌面;2、服務端可...

guoyiqi 271

hive实验的学习实验报告

hive实验报告Linux下的MySQL安装配置与卸载MySQL安装配置MySQL卸载Hive的安装与配置Hive安装对Hive进行配置MySQL Connector/J安装启动Hive与Wordcount程序启动HiveWordcount应用实例学习资料分享 Linux下的MySQL安装配置与卸载 MySQL安装配置 ①官网下载mysql-server(yum安装) wget http://de...

qq_34776966的博客 5804

计算机关闭一个窗口的方法,关闭电脑烦人的弹窗,我这有5种方法,还你桌面一片清净...

关闭电脑烦人的弹窗,我这有5种方法,还你桌面一片清净每天坐在办公桌面前,一打开电脑就弹窗四五个弹窗,一个一个的关闭之后,没想到还会经常在我办公的时候,弹出来广告,这下我可就不能再忍了。于是乎去请教了懂电脑的朋友,一下子就将电脑烦人的弹窗关闭了,神清气爽的感觉油然而生,下面就将自己关闭电脑弹窗的小小技巧告诉大家,一起来看看吧!1、直接关闭很多弹窗右上方都带有设置小按钮,可以直接进行关闭,这些还是比较...

weixin_36103691的博客 5632
上一篇: 超级管理员(DevicePoliceManager)
下一篇: 读取用户logcat日志
CharonChui
博客等级 码龄12年 66粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值