应用安装

Charon 立即下载

应用安装

  1. 在应用程序中安装程序需要权限
    <uses-permission android:name="android.permission.INSTALL_PACKAGES" />

  2. 示例代码
    安卓中提供了安装程序的功能,我们只要启动安装程序的Activity,并把我们的数据传入即可。

    //获取到要安装的apk文件的File对象
    File file = new File(Environment.getExternalStorageDirectory(), "test.apk");
    //创建一个意图
    Intent intent = new Intent();
    //设置意图动作
    intent.setAction(Intent.ACTION_VIEW);  //android.intent.action.VIEW
    //设置意图数据和类型
    intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.pacakage-archive");
    //启动安装程序的Activity
    startActivity(intent);

Tip:
- Uri.fromFile(File file)方法能从一个File对象得到它的Uri
- Intent有setData(Uri uri)和setType(String type)方法,但是这里如果我们分开写就会报错,
原因是setData()方法在执行的时候会自动清空所有在此之前调用的setType方法所设置过的type,
同样setType方法在执行的时候也会自动清空所有在此之前调用setData设置的Data,所以这里必须使用setDataAndType方法而不能分开使用setData和setType.
- Android中提供了安装应用程序的功能,在Android系统源码中apps/PackageInstaller中。我们找到这个PackageInstaller的清单文件,
然后找到PackageInstallerActivity来查找该Activity的意图:如下
android_source/packages/apps/PackageInstaller/AndroidManifest.xml
xml
<activity android:name=".PackageInstallerActivity"
android:configChanges="orientation|keyboardHidden"
android:excludeFromRecents="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.INSTALL_PACKAGE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="content" />
<data android:scheme="file" />
<data android:mimeType="application/vnd.android.package-archive"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.INSTALL_PACKAGE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="content" />
<data android:scheme="file" />
</intent-filter>
</activity>


  • 邮箱 :charon.chui@gmail.com
  • Good Luck!
欢乐熊大话蓝牙知识16:蓝牙是怎么找设备的?扫描与广播的“对话内幕” 蓝牙是怎么找设备的?扫描与广播的对话技术介绍 阅读详情

相关推荐

二叉树随机漫步

元旦快乐! 学习到中本聪bitcoin的文章的calculation部分的时候,出现了binomial random walk,不是很明白什么是random walk。发现这个文章写的很好:https://blog.youkuaiyun.com/fireguard/article/details/16111603 随机漫步,也叫随机游走,最早是物理学中做"布朗运动"的微观粒子的运动形态来形成的一个模型,布朗运...

gjq5464的博客 1737

消除“Permission is only granted to system apps”错误

在AndroidManifest.xml中使用了如下的配置: 就会报错:Permission is only granted to system apps 原因如下: 此类权限仅授予系统级应用,可以修改下Link Error Checking项的安全级别; In Eclipse: Window -> Preferences -> Android -> Lint Error Checki

山不在高,有金则名 4万+

在统信UOS Server 20上踩坑记:手把手教你搞定openGauss 5.0.0企业版安装(附常见报错解决方案)

本文详细记录了在统信UOS Server 20上安装openGauss 5.0企业版的实战经验,包括环境准备、依赖库问题、目录权限、内存参数调优等常见问题的解决方案。通过伪装系统标识、建立软链接、调整内存参数等方法,成功克服国产操作系统与企业级数据库的兼容性挑战,为开发者提供了一份深度排雷指南。

weixin_28698059的博客 265

Android权限操作之uses-permission详解

本文实例讲述了Android权限操作之uses-permission。分享给大家供大家参考,具体如下: 我们在安装Android软件的时候,系统会提示该软件所需要的权限,相对于其他系统,android的权限非常多。我们在开发软件的时候,也需要声明相应的权限,比如希望软件能发短信,需要声明软件调用短信的权限,否则软件运行的时候就会报错。 Android的权限在AndroidManifest.xml文...

weixin_33946605的博客 1486

JY02无刷电机驱动芯片的硬件设计与调试实战

本文详细介绍了JY02无刷电机驱动芯片的硬件设计与调试实战。重点解析了其外置MOSFET的设计优势,提供了从电源滤波、功率MOSFET选型到电流采样保护的核心电路设计指南。文章还分享了安全上电、动态测试及常见问题排查的完整调试流程,并探讨了开关优化、闭环测速等性能提升技巧,帮助开发者构建稳定高效的无刷电机驱动系统。

weixin_29193359的博客 366

别再瞎选了!手把手教你根据车型等级,在CarSim里快速匹配最合适的动力学模型

本文详细介绍了如何在CarSim中根据车型等级快速匹配最合适的动力学模型,提升仿真效率。通过分析CarSim模型库与A/B/C/D级车标准的对应关系,提供四步精准定位方法和不同车型的特殊处理技巧,帮助工程师避免常见错误,显著缩短模型准备时间。

weixin_27015733的博客 264

Android 踩坑记1---------Android8.0自动升级覆盖安装问题坑

最近发布版本测试发现部分手机无法升级安装问题,查询手机系统发现都是8.0+设备,后查看代码发现没有最8.0新特性适配,所以出现这种问题。 Android 8.0为了防止手机安装一些不安全软件,在安装非市场来源软件的时候需要请求安装未知应用来源的权限,故在安装软件之前需要用户允许此权限才可以进行安装。 具体操作如下: 1、首先在Mainfest文件中添加该权限 &lt;uses-permi...

迷途小顽童 3025

LPC2124定时器实现跑马灯

文章目录一、keil 4新建工程 一、keil 4新建工程 1、Create New Project,注意,最好添加进一个新建好的文件夹里,keil不会帮你新建。 2、添加设备类型:NXP目录下的LPC2124 3、选择启动文件Startu.s 4、new 一个file,保存命名为.c文件 5、添加进project里,右击,add 选中,添加 6、设置编译输出.hex文件 ...

qq_37937830的博客 5753

Android中实现静态的默认安装和卸载应用

最近好长时间都没有写blog了,主要是因为最近工作上的事以及下载Android源码的事耽误的(下载源码这件事会在后续的blog中写道,这个真的很有意义呀~~),那么今天来写点什么呢?主要的灵感来自于早上看新闻看到一篇文章说有一款应用在后台中卸载用户手机中的所有浏览器的app,不会被用户察觉,但是最后百度浏览器还是用反侦察技术找到这个邪恶的应用然后将其告上法庭了。那么我们就来看看怎么能够实现应用...

weixin_30399871的博客 387

DTI-ALPS处理笔记

前段时间刚好学习了一下DTI-ALPS处理(diffusion tensor image analysis along the perivascular space ),记录一下,以便后续学习。ALPS是2017年发表在《Japanese Journal of Radiology》的一篇文章首次提出的 (),主要用于无创评估脑内淋巴系统功能的衡量数值。C图和D图中的蓝色部分是投射纤维,绿色部分是联合纤维,红色部分是皮下纤维。

weixin_52073820的博客 4792

深度强化学习 | 基于DQN实现Flappy Bird游戏与分析

在Flappy Bird中,玩家需要通过控制小鸟安全穿过随机长度的水管来得分。本文基于深度Q网络DQN来实现Flappy Bird游戏的自主探索与学习

FRIGIDWINTER的博客 5914

Android禁止安装三方应用(屏蔽所有安装应用的方式)

android系统安装应用有四种方式 1.系统应用安装――开机时完成,没有安装界面 2.网络下载应用安装――通过market应用完成,没有安装界面 3.ADB工具安装――没有安装界面。 4.第三方应用安装――通过现有的APK文件安装,有安装界面,由packageinstaller.apk应用处理安装及卸载过程的界面。 1.禁止ADB和应用商店安装由“frameworks\base\services\core\java\com\android\server\pm\Packag...

qq_36390114的博客 3万+

ROS & ROS2 机器人深度相机激光雷达多传感器标定工具箱

不过,多传感器标定工具箱允许通过编辑 yaml 文件来调整标定目标的参数: <repository>/mutlisensor_calibration/cfg/TargetWithCirclesAndAruco.yaml%YAML:1.0rows: 4cols: 1dt: irows: 4cols: 2dt: frows: 1cols: 12dt: fCAD 模型网格/云通过 GICP 将模型数据与分割点云对齐,用于优化检测到的目标姿态。

2506_90492529的博客 2109

Android 安装应用的两种方式--外部应用安装器安装和静默安装(系统应用)

安装应用的两种方式 1.调用外部应用安装器安装(全部适用) 2.具有系统权限的应用通过反射PackageManager的接口实现静默安装

qqwuy_muzi的博客 7092

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Android如何安装系统应用,及自己增加安装系统应用的接口

根据SIM卡安装系统应用 功能: 1:如何安装系统应用,apk放在system/app系统分区下面。 2:根据SIM卡的归属国家选择性的安装应用。 本人使用方法: 在开机的服务里面添加接口(PackageManagerService.java),检测到SIM卡的信息调用该接口。 下面是具体的方法: 在

无心细语 2071

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Android adb 查看已经安装的应用、安装应用、卸载应用

Android adb 查看已经安装的应用、安装应用、卸载应用 一、adb shell pm list packages -[option] 命令查看已经安装的应用,列出包名,后面加不同的后缀输出不同信息。 adb shell pm list packages ####查看当前连接设备或者虚拟机的所有包 adb shel...

海月汐辰 5万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Android应用安装过程及原理

Android应用安装的流程及路径: 应用安装涉及到如下几个目录: system/app 系统自带的应用程序,无法删除 data/app 用户程序安装的目录,有删除权限。安装时把apk文件复制到此目录 data/data 存放应用程序的数据 Data/dalvik-cache ...

grandself的博客 1万+

算法

算法算法(Algorithm)是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题, 执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。 算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。或者看成按照要求设计好的有限的确

Charon_Chui的专栏 717

AndroidManifest配置之uses-permission

介绍AndroidManifest.xml中uses-permission的使用

ccpat的专栏 2万+

Linux中常用软件的安装(超详细,图文详解)

Linux操作系统中特定软件的安装——JDK、MySQL、VMware、CentOS的安装

IT小小白的博客 4550

应用在华为P9手机上安装失败原因分析 (错误码:-110)

问题描述: 应用在之前的华为手机上都能正常安装,但是在华为P9手机上安装失败,提示错误为: 失败原因: 系统问题导致安装失败(错误码:-110) 原因分析: 开始怀疑是android的版本问题,后来看了一下在华为Mate8上面也能正常安装,华为Mate8和华为P9都是android6.0华为P9 用的是 EMUI 4.1版本,但是华为Mate8用的是EMUI4.0, 初步

程序员人生 3万+

android APK应用安装过程以及默认安装路径

一:安装过程 APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。 Android应用安装有如下四种方式 1.        系统应用安装――开机时完成,没有安装界面 2.        网络下载应用安装――通过market应用完成,没有安装界面 3.        ADB工具安装

xuhui_7810的专栏 2万+

应用程序安装流程

https://maoao530.github.io/2017/01/18/package-install/   本文介绍APK的安装流程。 一、安装流程图 APK安装流程,总体可以下图流程,用ProcessOn画的,凑合看: 从上图我们可以看到apk安装到最后都会调用到这个flow: PMS.scanPackageTracedLI =&gt; PMS.scanPackage...

thinkinwm的专栏 8825

快应用安装

一、环境搭建 安装NodeJS 需安装6.0以上版本的NodeJS,请从NodeJS官网下载 安装toolkit工具 通过npm仓库安装,在命令行中执行以下命令: npm install -g hap-toolkit 检查是否安装成功 hap -V 二、创建项目 安装toolkit工具后,可通过全局hap命令创建一个项目模板,如下所示: hap...

donyFeng6的博客 2858

android PackageInstaller那点事儿

android apk安装整体上可以分为2类,一类是有界面安装,一类是无界面安装。无界面安装又分为内置apk开机安装和命令安装,命令安装又分为两类,一类电脑安装也就是adb命令,另一类是手机安装也就是pm命令。今天我们主要介绍有界面安装。

dream.zhou 1万+

安卓手机”应用未安装“解决办法

本文章适用于:安卓手机恢复出厂设置但是仍然会有”应用未安装“的错误信息的使用者 安卓手机出现安装问题,安装时提示”应用未安装“(或者是被安全软件管理安装时提示”应用安装失败“),最好的一个办法就是恢复出厂设置。为什么恢复出厂设置可以生效呢?那么我们得从”应用未安装“的原因处开始讨论。 所谓”应用未安装“有几大可能的原因:1)安装的空间不足    解决办法:卸载不要的应用或者清理一下应用缓存数据

Hudson的博客 2万+
上一篇: 下拉刷新ListView
下一篇: 修改系统组件样式
CharonChui
博客等级 码龄12年 66粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值