0
我正在开发一个应用程序,允许用户使用谷歌视觉API扫描包含ssid的QR码连接到特定的WiFi网络。要扫描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());
}
更新
原来它不只是旅行它的位置的权限。任何权限请求都遇到相同的行为。
快速浏览后,我没有在文档中看到我使用的这个权限的任何提及。也无法解释为什么应用程序完美地工作,如果在设置中手动启用了位置并且屏幕覆盖权限保持不变。 – Lonergan6275