我正在使用Media Projection API进行截屏的应用中。我能够成功获取用户前台屏幕的屏幕截图,但遗憾的是无法获取用户是否已经提供屏幕捕获权限的状态。
要求:当用户未提供屏幕捕获权限时,我只需要显示一次权限窗口。
当前行为:每次启动应用时都会显示权限窗口。请在下面找到截图
我用于在MainActivity中显示权限窗口的代码:
MediaProjectionManager mgr = (MediaProjectionManager) getSystemService(MEDIA_PROJECTION_SERVICE);
startActivityForResult(mgr.createScreenCaptureIntent(),
Constants.RESULT_CODE.SCREENSHOT);
如果用户从权限窗口中选择“是”,我将按以下方式启动服务:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == Constants.RESULT_CODE.SCREENSHOT) {
if (resultCode == RESULT_OK) {
Intent intent = new Intent(this, WindowChangeDetectingService.class);
intent.putExtra(Constants.INTENT_KEY.SCREENSHOT, resultCode);
intent.putExtra(Constants.INTENT_KEY.SCREENSHOT_DATA, data);
startService(intent);
finish();
}
}
}
预期输出:
我正在找出检查简单权限检查的解决方案,该检查说明在请求Media Projection Services权限窗口之前,权限是否已经提供或未使用任何布尔检查
if(isMediaPermissionAlreadyEnabled){
MediaProjectionManager mgr = (MediaProjectionManager) getSystemService(MEDIA_PROJECTION_SERVICE);
startActivityForResult(mgr.createScreenCaptureIntent(),
Constants.RESULT_CODE.SCREENSHOT);
}
自从3天以来,我一直在努力获得Permission check的解决方案,而且我无法找到解决我的用例的任何工作。如果有人向我提供一些解决我的问题的建议或提示,那将非常有帮助。提前谢谢。