android 权限管理适配 oppo,Android 动态权限适配 & 个别厂商( oppo & vivo )

在Android 6.0及以上的OPPO和VIVO手机上,动态权限校验可能存在异常,即使返回权限已允许,实际使用时仍会弹出权限申请框。解决方法包括延时判断权限和监听录音状态来确保权限已授予。此外,不同机型在文件写入和录音权限处理上也存在差异,如华为会自动创建路径,而VIVO和OPPO可能会引发异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

遇到一个比较奇葩的问题,特此记录:

动态权限校验 Android 6.0 的 oppo & vivo 手机时,始终返回 权限已被允许

但是当真正用到该权限时,却又弹出权限申请框。

ContextCompat.checkSelfPermission(container.activity, Manifest.permission.CAMERA);

// 返回值

0

// 而权限校验的变量

public static final int PERMISSION_GRANTED = 0;

public static final int PERMISSION_DENIED = -1;

// 进行判断时,下面表示已允许

PackageManager.PERMISSION_GRANTED;

很显然,返回的始终是 允许,但是在使用时仍会弹出权限申请框。

解决

窃以为,是厂商管家之类的对权限的获取进行了修改。

进行伪权限判断(延时判断,超时则默认没有权限,而不进行下一步操作)

进入下一页,但是因为没有权限,无法使用相关功能,直到获取到权限

进入下一页,在访问权限失败的地方 finish 掉当前页面

private void startPreview() {

try {

camera.setPreviewDisplay(surfaceHolder);

camera.startPreview();

previewing = true;

} catch (Exception e)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值