首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当前前景应用的屏幕截图

当前前景应用的屏幕截图
EN

Stack Overflow用户
提问于 2013-05-23 18:49:01
回答 3查看 416关注 0票数 0

我使用这段代码在iOS中截图:

代码语言:javascript
复制
- (UIImage*)screenshot 
{
    CGSize imageSize = [[UIScreen mainScreen] bounds].size;
    if (NULL != UIGraphicsBeginImageContextWithOptions)
        UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);
    else
        UIGraphicsBeginImageContext(imageSize);

    CGContextRef context = UIGraphicsGetCurrentContext();

    // Iterate over every window from back to front
    for (UIWindow *window in [[UIApplication sharedApplication] windows]) 
    {
        if (![window respondsToSelector:@selector(screen)] || [window screen] == [UIScreen mainScreen])
        {
            CGContextSaveGState(context);
            CGContextTranslateCTM(context, [window center].x, [window center].y);
            CGContextConcatCTM(context, [window transform]);
            CGContextTranslateCTM(context,
                  -[window bounds].size.width * [[window layer] anchorPoint].x,
                  -[window bounds].size.height * [[window layer] anchorPoint].y);

            [[window layer] renderInContext:context];

            CGContextRestoreGState(context);
        }
    }

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return image;
}

当我的应用程序处于后台时,代码将运行。

问题是,它总是需要我的应用程序的屏幕截图,相反,我希望它使用当前的屏幕。

有可能吗?多么?

-编辑--

实际上是可能的,(例如,请参阅此appstore应用程序 )。所以剩下的问题是怎么做?

EN

回答 3

Stack Overflow用户

发布于 2013-05-23 18:56:36

不是的。

代码总是使用应用程序的屏幕截图是有原因的:这是您的应用程序。

想象一下后台应用程序能够拍摄当前屏幕的截图对隐私的影响:

我,这个用户,在使用Bob的恶意偷钱器时刚刚按了家庭按钮,然后转过来查看我的电子邮件--这是我的银行的一张账单,碰巧包括我的帐号、ATM卡号和我的PIN (这不是一个很好的银行)。

现在,我刚刚使用的恶意应用程序“现在决定”将是一个很好的时机来看看我在做什么。它获取我当前屏幕的截图,并将其上传到服务器。

第二天,我所有的钱都没了,我起诉苹果。

票数 7
EN

Stack Overflow用户

发布于 2013-05-23 19:31:52

这是不可能的,因为沙箱的应用程序。应用程序不应该获得其他第三方应用程序的状态。

票数 3
EN

Stack Overflow用户

发布于 2013-05-23 19:02:50

如果通过进入后台,你指的是用户最小化应用程序的时间,那么苹果不允许你从应用程序的外部拍摄用户设备的照片是不可能的。

但是我可能误解了你的问题,如果你在从前景到背景转换之前和之后发布了两个屏幕截图,这样我就可以看到你想在哪里拍摄屏幕快照,我可以给你一个更好的回答:D

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16721651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档