如何检查Media Projection API服务权限是否已启用

时间:2017-09-19 06:56:37

标签: android service permissions android-mediaprojection mediaprojectionmanager

我正在使用Media Projection API进行截屏的应用中。我能够成功获取用户前台屏幕的屏幕截图,但遗憾的是无法获取用户是否已经提供屏幕捕获权限的状态。

要求:当用户未提供屏幕捕获权限时,我只需要显示一次权限窗口。

当前行为:每次启动应用时都会显示权限窗口。请在下面找到截图

enter image description here

我用于在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的解决方案,而且我无法找到解决我的用例的任何工作。如果有人向我提供一些解决我的问题的建议或提示,那将非常有帮助。提前谢谢。

0 个答案:

没有答案