时间:2022-09-30 09:27:06 | 栏目:Android代码 | 点击:次
今天来教大家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); }