Android调用应用安装界面方法
作者:程序员子固 时间:2021-05-25 18:29:20
今天来教大家android如何跳转系统安装界面
1.首先给AndroidManifest.xml(清单配置文件)添加权限
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
2.在res下创建一个xml包,用于后面给清单配置文件添加路径
3.在xml包下创建一个xml文件
<paths>
<external-files-path
name="external_storage_root"
path="."/>
</paths>
因为我这里软件安装包的位置我用的是外部存储(路径/storage/emulated/0/Android/data/包名/files/名字)所以我选择用external-files-path
其他存储路径的格式如下
(1)files-path:
对应物理路径:getFilesDir(
对应具体路径:/data/user/0/包名/files
(2)cache-path:
对应物理路径:getCacheDir()
对应具体路径:/data/user/0/包名/cache
(3)external-path:
对应物理路径:Environment.getExternalStorageDirectory()
对应具体路径:/storage/emulated/0
(4)external-files-path:
对应物理路径:getExternalFilesDir("名字")
对应具体路径:/storage/emulated/0/Android/data/包名/files/名字
(5)external-cache-path:
对应物理路径:getExternalCacheDir()
对应具体路径:/storage/emulated/0/Android/data/包名/cache
4.在AndroidManifest.xml(清单配置文件)添加配置
<provider
android:exported="false"
android:grantUriPermissions="true"
android:name="androidx.core.content.FileProvider"
android:authorities="起一个独特的名字.fileprovider">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"
/>
</provider>
5.在java文件添加隐式意图和权限代码
private void iniAPK() {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { // 7.0+以上版本
Uri apkUri = FileProvider.getUriForFile(this, "这是清单配置文件文件起的独特的名字.fileprovider", file);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
} else {
intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
}
this.startActivity(intent);
}
来源:https://blog.csdn.net/liujibo520/article/details/122617576
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
java 线程锁详细介绍及实例代码
Java详细讲解不同版本的接口语法和抽象类与接口的区别
![](https://img.aspxhome.com/file/2023/5/61875_0s.png)
手动模拟JDK动态代理的方法
在IntelliJ IDEA中多线程并发代码的调试方法详解
![](https://img.aspxhome.com/file/2023/6/67146_0s.jpg)
java商城项目实战之购物车功能实现
![](https://img.aspxhome.com/file/2023/0/63340_0s.jpg)
Mybatis结果集自动映射的实例代码
因Spring AOP导致@Autowired依赖注入失败的解决方法
Java动态代理详解及实例
java字符串比较获取字符串出现次数的示例
Java 内置Http Server构建web应用案例详解
![](https://img.aspxhome.com/file/2023/8/69948_0s.png)
Java ThreadLocal类使用详解
![](https://img.aspxhome.com/file/2023/4/71014_0s.png)
slf4j jcl jul log4j1 log4j2 logback各组件系统日志切换
![](https://img.aspxhome.com/file/2023/8/57928_0s.png)
springboot中PostMapping正常接收json参数后返回404问题
Java并发问题之乐观锁与悲观锁
![](https://img.aspxhome.com/file/2023/1/84201_0s.png)
Struts2配置文件中使用通配符的方法(三种形式)
Jersey Restful接口如何获取参数的问题
java枚举类型-Enum
Java用 Rhino/Nashorn 代替第三方 JSON 转换库
java生成指定范围随机数的多种代码
![](https://img.aspxhome.com/file/2023/3/60383_0s.png)