参考:https://zhuanlan.zhihu.com/p/555253023
选项:1.允许 2.拒绝 3.拒绝&不再询问
checkSelfPermission():
1.PERMISSION_GRANTED(已授权) 2.PERMISSION_DENIED(未授权) 3.PERMISSION_DENIED(未授权)
shouldShowRequestPermissionRational():
1.false 2.true 3.false
requestPermissions():
1.不会弹出系统授权窗 2.弹出系统授权窗(带“拒绝&不再询问“选项) 3.不会弹出系统授权窗
onRequestPermissionsResult():
1.直接返回PERMISSION_GRANTED 2.根据用户操作返回 3.直接返回PERMISSION_DENIED(个别系统会返回其他值,但非PERIMISSION_GRANTED)
如需撤消特定运行时权限,请将该权限的名称传入 revokeSelfPermissionOnKill()。如需同时撤消一组运行时权限,请将这组权限的名称传入 revokeSelfPermissionsOnKill()。撤消是异步发生的,会终止与您应用的 UID 相关联的所有进程。
注意:为了让系统设置表明您的应用不会访问特定权限组中的数据,您必须撤消该权限组中的所有权限。在这种情况下,调用 revokeSelfPermissionsOnKill() 会很有帮助。
revokeSelfPermissionOnKill(Manifest.permission.RECORD_AUDIO)