Open itgoyo opened 4 years ago
在res目录下面新建一个xml的文件夹,然后创建一个file_paths.xml 内容
res
file_paths.xml
<?xml version="1.0" encoding="utf-8"?> <paths> <external-path name="download" path="" /> <external-files-path name="Download" path="" /> </paths>
安装apk的代码:
Intent install = new Intent(Intent.ACTION_VIEW); install.addCategory(Intent.CATEGORY_DEFAULT); install.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { install.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); Uri contentUri = FileProvider.getUriForFile(mContext, "com.chindle.inclass.fileProvider", file); install.setDataAndType(contentUri, "application/vnd.android.package-archive"); } else { install.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive"); } startActivity(install);
其中com.chindle.inclass.fileProvider这行代码,要和AndroidManifest里面的
com.chindle.inclass.fileProvider
<provider android:name="android.support.v4.content.FileProvider" android:authorities="com.chindle.inclass.fileProvider" android:exported="false" android:grantUriPermissions="true" tools:replace="android:authorities"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" /> </provider>
要对应的上,不然安装过程中可能会出错。
重点还有必须在AndroidManifest里面添加:
AndroidManifest
<!-- 安装包下载安装更新--> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
否则不会出现安装Apk的界面
在
res
目录下面新建一个xml的文件夹,然后创建一个file_paths.xml
内容安装apk的代码:
其中
com.chindle.inclass.fileProvider
这行代码,要和AndroidManifest里面的要对应的上,不然安装过程中可能会出错。
重点还有必须在
AndroidManifest
里面添加:否则不会出现安装Apk的界面