相关疑难解决方法(0)

除了要求许可外,如何在不干扰当前前台进程的情况下获取媒体投影管理器?

问题:我有一个屏幕截图应用程序,它使用浮动覆盖服务进行控制,并使用屏幕转换API媒体项目管理器来访问屏幕.有时当设备内存不足时,Android重新启动服务,我丢失了媒体投影.

我知道重新获取新媒体投影的唯一方法是重新打开请求权限的活动,这将是它的结束,除了一个问题.某些应用程序,特别是游戏,似乎在丢失前台进程,暂停或以其他方式重置时进行侦听.这很烦人.

这是我理想的场景.服务打开,如果用户在权限请求对话框中选择了"已检查不再询问我",则会以不干扰当前前台活动的方式获取媒体投影.

如何在不干扰当前前台进程的情况下获得媒体投影管理器?

是否有办法从直接服务获取媒体投影,或者从服务中在后台打开活动?

目前我在Activity中使用此代码来获取媒体投影管理器

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
protected void getScreenShotPermission() {
    if(isLollipopOrNewer) {
        mediaProjectionManager = (MediaProjectionManager) getContext().getSystemService(MEDIA_PROJECTION_SERVICE);
        startActivityForResult(mediaProjectionManager.createScreenCaptureIntent(), 1);
    }
}




@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 1) {
        if (resultCode == Activity.RESULT_OK) {
            mediaProjection = mediaProjectionManager.getMediaProjection(resultCode, data);
            this.finish();
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

android android-5.0-lollipop

15
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1

android-5.0-lollipop ×1