1.权限相关
1.1 manifest相关
<!-- 打开系统安装界面需要此权限--> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application android:usesCleartextTraffic="true"> 支持明文请求网络,例如http请求
android 7.0以上版本禁止分享本地文件到第三方应用 差不都就是这个意思,反正就是不添加这个provider就不能唤起系统安装进程 <!-- 非androidx 使用这个android.support.v4.content.FileProvider--> <provider android:name="androidx.core.content.FileProvider" android:authorities="com.zznode.zznodesdp.fileprovider" //此处包名+.fileprovider android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" /> </provider>
在res目录下创建xml文件夹 ,创建file_paths.xml文件
此处是暴露内存所有地址,path具体位置可以设置添加
<?xml version="1.0" encoding="utf-8"?> <paths> <external-path path="." name="file_paths" /> </paths>
2.activity代码
public class SdpActivity extends AppCompatActivity implements EasyPermissions.PermissionCallbacks{ private File apkFile; private ProgressDialog dialog; final String apkUrl = "http://180.168.70.186:8808/apk/app-release.apk"; String phoneNo; @Override protected void onCreate(Bundl