我正在开发一个应用程序,允许用户使用google vision api连接到特定的wifi网络,以扫描包含ssid的QR码。要扫描wifi网络,我需要请求用户授予位置权限。如果我转到设置并手动启用“位置”权限但在运行时请求权限时,用户点击启用然后弹出第二个对话框,Screen Overlay Detected
需要上下文切换以启用Screen Overlay
权限。我没有吸引其他应用程序,当我手动启用位置权限时,没有任何问题。那么为什么这个权限对话框会弹出?
由于我不确定为什么Android要求此权限,我不确定要发布的代码。我已经包含了对更改网络请求所需的3个权限的请求。
final int permissionCheck = ContextCompat.checkSelfPermission(mActivity, Manifest.permission.CAMERA);
final int locationPermissionCheck = ContextCompat.checkSelfPermission(mActivity, Manifest.permission.ACCESS_COARSE_LOCATION);
final int wifiPermissionCheck = ContextCompat.checkSelfPermission(mActivity, Manifest.permission.CHANGE_WIFI_STATE);
final int granted = PackageManager.PERMISSION_GRANTED;
if ((permissionCheck != granted) || (locationPermissionCheck != granted) || (wifiPermissionCheck != granted)) {
ActivityCompat.requestPermissions(mActivity, new String[]{
Manifest.permission.CAMERA,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.CHANGE_WIFI_STATE
}, 0);
} else {
cameraSource.start(cameraView.getHolder());
}
更新
结果证明它不仅仅是将其绊倒的位置许可。任何权限请求都会遇到相同的行为。
答案 0 :(得分:0)
您可能正在使用的某些库需要屏幕叠加权限。您可以检查您正在使用的库以及他们需要的权限吗?