所以我在清单中有相机权限,当应用程序开始启动相机时它会崩溃。这发生了因为用户拒绝了许可管理器对xiaomi设备附带的相机的许可
因此应用程序崩溃,有人可以帮助解决这个问题。
以正常的方式获得permisions,它没有给出正确的结果
String permission = "android.permission.CAMERA";
int res = getContext().checkCallingOrSelfPermission(permission);
对于23个以下的设备,res总是为0(有权限),如果用户通过转到权限管理员手动拒绝了权限,那么
答案 0 :(得分:1)
撤销23以下Android设备的权限是非标准行为,并且只能通过自定义操作系统版本(例如Cyanogen mod或在您的情况下,小米修改版本)来实现。用户应该知道,以这种方式撤销权限可能会导致应用程序出错。
在Android 6.0之前,您可以合理地假设,如果您的应用程序完全正在运行,它将拥有它在应用程序清单中声明的所有权限。 https://developer.android.com/training/permissions/best-practices.html#testing
因此,我建议您使用try / catch运行需要特定权限的方法。如果api lvl低于23且您的方法调用失败,您肯定知道您是否拥有该权限。