Android app安装第三方应用

ops/2024/9/25 19:16:16/

在Android设备上安装第三方应用通常涉及一系列步骤,这些步骤可能会因Android版本的不同而有所差异。但大致流程可以归纳为以下几个关键步骤:

1、开启权限

      开启“允许安装未知来源应用”,可以去安全设置那里设置允许安装未知来源,也可以使用代码跳转

2、在AndroidManifest.xml添加了权限

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

3、判断是否有权限

if(isUnknownSourcesEnabled){//权限没有打开则提示用户去手动打开openInstallPermission()}/*** 跳转到设置-允许安装未知来源-页面*/private void openInstallPermission() {Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);startActivity(intent);}/*** 判断* 是否允许* 安装位置来源*/public boolean isUnknownSourcesEnabled(Context context) {try {return Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS) == 1;} catch (Settings.SettingNotFoundException e) {return false;}}

4、执行安装 

filePath为绝对路径,例如demo.apk位于file/d/下,则filePath就为/file/d/demo.apk
   /*** 安装Apk*/public void installApk(String filePath) {File apkFile = new File(filePath);Intent intent = new Intent(Intent.ACTION_VIEW);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);if (apkFile.exists()) {Uri apkUri = FileProvider.getUriForFile(mContext(),  mContext().getPackageName() + ".fileprovider", apkFile);intent.setDataAndType(apkUri, "application/vnd.android.package-archive");intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);try {startActivity(intent);} catch (android.content.ActivityNotFoundException ex) {// 安装器未找到,可能用户未启用安装未知来源Logger.d("===安装器未找到==" + ex.toString());}} else {Logger.d("===文件不存在===");}}

5、对了android7以上还需要配置FileProvider

    <!-- 读写sd卡文件处理 --><providerandroid:name="androidx.core.content.FileProvider"android:authorities="csu.xiaoya.robotApp.fileprovider"android:exported="false"android:grantUriPermissions="true"tools:ignore="WrongManifestParent"><meta-dataandroid:name="android.support.FILE_PROVIDER_PATHS"android:resource="@xml/file_paths" /></provider>

6、file_paths文件内容

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android"><root-path name="root" path="."/><files-path name="files" path="." /><cache-path name="cache" path="." /><external-path name="external" path="." /><external-files-path name="name" path="path" /><external-cache-path name="name" path="path" /><external-path name="external_files" path="."/>
</paths>

最后提示apk下载逻辑没有实现,需要资格去实现。


http://www.ppmy.cn/ops/97938.html

相关文章

无人机飞手培训:考证、组装、维修技术详解

随着无人机技术的飞速发展&#xff0c;无人机已广泛应用于航拍、农业、环境监测、救援等多个领域&#xff0c;成为现代社会不可或缺的工具之一。作为无人机操作的核心——无人机飞手&#xff0c;其专业技能的掌握至关重要。本文档将详细解析无人机飞手培训的关键环节&#xff0…

阿里MAXCOMPUTE数据专辑信息读取并同步数据表

阿里MAXCOMPUTE数据专辑信息读取并同步数据表 在阿里云大数据体系中&#xff0c;我们可以使用数据地图的数据专辑&#xff0c;对数据的类别等进行一个管理 那么管理后的数据&#xff0c;我们想要落表进行相关的数据分析&#xff0c;如何做呢&#xff1f; 查看阿里云官方文档…

优雅处理枚举前端丢失大Long精度问题

1. 枚举-json处理&#xff08;前端 <> 后端 <> 数据库&#xff09; 前端传递 枚举code 后端响应 枚举code 表里存储 枚举code 内存处理 枚举对象 Getter AllArgsConstructor JsonFormat(shape JsonFormat.Shape.OBJECT) public enum SexEnum {MALE(0, "男&…

三防平板加固终端助力汽车工厂更快交付高质量车辆

随着汽车的市场需求量不断扩大&#xff0c;如何简化生产检验流程以提高汽车生产效率和安全性成为了汽车制造商的主要关注点。过去基于纸质化的检验流程已无法满足更高质量、更具成本效益的车辆生产要求&#xff0c;能够取代繁琐且易出错的纸质文件&#xff0c;提供对整个生产检…

ArcMap教程(01):制作人口专题图

文章目录 01、ArcGIS专题图制作第一步:插入数据框第一步:加载人口分级地图第二步:添加范围指示器第三步:修改样式1、添加标题2、添加比例尺3、添加指北针4、插入图例01、ArcGIS专题图制作 第一步:插入数据框 1、工具栏【插入】–>【数据库】 2、选中图层下的【宜昌市…

React+Vis.js(02):vis.js设置节点样式

文章目录 1、修改vis.js的节点和关系颜色2、修改vis.js节点的字体颜色2.1 统一设置节点字体颜色2.2 自定义某个节点的字体颜色3、设置vis.js节点的边框颜色和宽度3.1 设置单个节点3.2 统一设置1、修改vis.js的节点和关系颜色 在vis.js中,可以通过color属性,来给node节点添加…

thinkphp8 定时任务 addOption

在ThinkPHP8中&#xff0c;我们可以使用addOption方法来添加命令行选项。这个方法允许我们为命令行应用程序定义可接受的选项和参数。 以下是一个简单的例子&#xff0c;演示如何在ThinkPHP8中为命令行应用程序添加一个选项&#xff1a; <?php namespace app\command;use…

了解精密零部件加工制造的关键技术

在现代工业领域中&#xff0c;精密零部件的加工制造起着至关重要的作用。从高端电子设备到航空航天领域&#xff0c;都离不开高精度的零部件。时利和详细解析了解精密零部件加工制造的关键技术&#xff0c;对于推动工业发展的重要性。 高精度的加工设备是实现精密零部件制造的基…