在某些设备上,当屏幕叠加应用正在运行时,点击VPN权限确定按钮并没有任何作用。
因此,我想要检查屏幕叠加应用是否正在运行,并显示“检测到屏幕叠加”对话框。
在安卓上有没有编程方式来检测屏幕叠加?
在某些设备上,当屏幕叠加应用正在运行时,点击VPN权限确定按钮并没有任何作用。
因此,我想要检查屏幕叠加应用是否正在运行,并显示“检测到屏幕叠加”对话框。
在安卓上有没有编程方式来检测屏幕叠加?
示例代码
public void checkDrawOverlayPermission(Context context) {
// check if we already have permission to draw over other apps
if (Settings.canDrawOverlays(context)) {
// code
} else {
// if not construct intent to request permission
final Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + getPackageName()));
// request permission via start activity for result
startActivityForResult(intent, REQUEST_CODE);
}
}
在onActivityResult中再次检查权限
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// check if received result code
// is equal our requested code for draw permission
if (requestCode == REQUEST_CODE) {
// if so check once again if we have permission
if (Settings.canDrawOverlays(this)) {
// continue here - permission was granted
}
}
}
如果您想以编程方式处理屏幕叠加检测弹出窗口? 这应该会有所帮助,https://gist.github.com/Aeonitis/2337b1ca652173839395be82db7d05c3