java实现自动安装apk,Android应用开发之Android 8.0不能自动安装APK问题的解决方法(完美适配)...

本文将带你了解Android应用开发Android 8.0不能自动安装APK问题的解决方法(完美适配),希望本文对大家学Android有所帮助。

Android8.0之前

未知应用安装权限默认开启,如下图所示

8.0以下手机未知应用安装权限.png

Android8.0之后

未知应用安装权限默认关闭,且权限入口隐藏。

如何开启未知应用安装权限的入口,并设置允许安装?

在清单文件中添加权限

判断当前是否为8.0以上系统(在这之前也可以对7.0系统进行判断,这里代码没有贴出)

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)   {

boolean hasInstallPermission =   isHasInstallPermissionWithO(context);

if (!hasInstallPermission) {

startInstallPermissionSettingActivity(context);

return;

}

}

如果为8.0以上系统,则判断是否有   未知应用安装权限

@RequiresApi (api = Build.VERSION_CODES.O)

private boolean isHasInstallPermissionWithO(Context   context){

if (context == null){

return false;

}

return   context.getPackageManager().canRequestPackageInstalls();

}

如果没有   未知应用安装权限 ,则需要手动开启

/**

*   开启设置安装未知来源应用权限界面

* @param context

*/

@RequiresApi (api = Build.VERSION_CODES.O)

private void startInstallPermissionSettingActivity(Context context)   {

if (context == null){

return;

}

Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);

((Activity)context).startActivityForResult(intent,REQUEST_CODE_APP_INSTALL);

}

Activity回调(这一步根据需求来确定)

override fun onActivityResult(requestCode: Int, resultCode:   Int, data: Intent?) {

super.onActivityResult(requestCode, resultCode,   data)

if (resultCode== Activity.RESULT_OK   ){

when(requestCode){

REQUEST_CODE_APP_INSTALL ->   {

onSettingCheckUpdate()

}

}

}

}

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值