2016-08-22 85 views
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()); 
} 

更新

原来它不只是旅行它的位置的权限。任何权限请求都遇到相同的行为。

回答

0

它可能是你使用的一些库,需要屏幕覆盖权限。你能检查你使用的图书馆和他们需要的许可吗?

+0

快速浏览后,我没有在文档中看到我使用的这个权限的任何提及。也无法解释为什么应用程序完美地工作,如果在设置中手动启用了位置并且屏幕覆盖权限保持不变。 – Lonergan6275