设备锁定时在 Today 扩展中加载文件

2024-02-16

在我今天的设备解锁的扩展中,这行代码按预期工作,从图像路径返回数据:

let imageData = NSData(contentsOfFile: path)

但是,当我的设备用密码锁定时,它返回零。当设备锁定时,有什么方法可以访问文件系统中的图像吗?我可以很好地访问 UserDefaults,但不能访问我的共享组目录中的文件。这是我创建路径的方式,调用imagePath,在这两种情况下都正确填充了我期望的路径:

func rootFilePath() -> String? {
    let manager = NSFileManager()
    let containerURL = manager.containerURLForSecurityApplicationGroupIdentifier(GROUP_ID)
    if let unwrappedURL = containerURL {
        return unwrappedURL.path
    }
    else {
        return nil
    }
}

func imagePath() -> String? {
    let rootPath = rootFilePath()
    if let uPath = rootPath {
        return "\(uPath)/\(imageId).png"
    }
    else {
        return nil
    }
}

我刚刚想通了!您需要相应地设置文件权限:

NSFileManager *fm = [[NSFileManager alloc] init];
NSDictionary *attribs = @{NSFileProtectionKey : NSFileProtectionNone};
NSError *unprotectError = nil;

BOOL unprotectSuccess = [fm setAttributes:attribs
                             ofItemAtPath:[containerURL path]
                                    error:&unprotectError];
if (!unprotectSuccess) {
    NSLog(@"Unable to remove protection from file! %@", unprotectError);
}

在许多情况下,您通常不想这样做,但由于信息旨在从锁定屏幕上查看,因此我同意删除文件保护。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设备锁定时在 Today 扩展中加载文件 的相关文章

  • 开发者可以在 Windows 应用程序中使用 iCloud 吗?

    开发人员可以使用 Apple 的 iCloud API 在 Mac OS X 和 iOS 上的不同版本的应用程序之间同步应用程序数据 如果开发人员拥有 Windows 版本的应用程序 该版本是否也可以使用 iCloud 将应用程序数据与 M
  • NSUserDefaults 多久同步一次?

    的文档NSUserDefaults说synchronise方法被定期调用 但没有提及频率 10分钟的谷歌搜索没有发现任何信息 发生的频率是多少synchronise方法调用 这是一个未公开的实现细节 可能甚至不是一个恒定的时间间隔 但是 您
  • ReactNative - 未处理的 JS 异常:SyntaxError

    当我尝试在 iOS 8 上启动 RUN 应用程序时 出现这个奇怪的错误 Unhandled JS Exception SyntaxError仅此而已 不再有更多信息 有any1偶然发现这个问题吗 在 iOs 9 上应用程序运行正常 x代码版
  • 具有动态警报正文的快速本地通知

    所以我可以创建一个像这样的本地通知 var localNotification UILocalNotification localNotification fireDate NSDate timeIntervalSinceNow 7 loc
  • 使 iOS 应用程序与 iPhone 6 和 iPhone 6 尺寸兼容 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我创建了一个应用程序 其中使用 xib 进行布局 目前我使用两种不同的 xib 一种用于iPhone4 320 480 一种用于iPh
  • SwiftUI:动态“列表”中的“切换”在重用时会破坏其布局?

    我试图展现一种动态List行包含Toggle元素 这Toggle最初布局正确 但是当它们滚动进和滚出视图时 即单元格重用时 它们的布局会中断 最小示例代码 import SwiftUI struct SwitchList View var
  • 为什么在迭代字典时会出现“类型 [object] 的值没有成员 'lowercaseString'” 错误? [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有几个对象 Struct object var title String var one object green v
  • 重叠的装载机圆

    我试图重现苹果为应用程序 活动 制作的重叠圆圈 见下图 如果您使用标准贝塞尔路径 起始 结束位置将仅在 0 到 2PI 之间产生影响 例如 如果您尝试填充 4PI 即使使用一些阴影 则无法模拟重叠加载 如何制作类似于苹果解决方案的东西来创建
  • Xcode 错误 - 架构 x86_64 的未定义符号?

    我正在运行 Swift 4 和 Xcode 9 beta 我收到此错误 但我不知道如何解决它 我什至不知道这是什么意思 Undefined symbols for architecture x86 64 T0So22AVCapturePho
  • 我们能否检测用户是否通过主页按钮或锁定按钮离开而没有监听 darwin 通知?

    我最近向应用程序商店提交了一个新的二进制文件并将其发送以供审核 但它立即被拒绝并显示以下消息 不支持的操作 不允许应用程序监听设备锁定通知 经过一番挖掘后 我发现我们无法使用 com apple springboard lockstate
  • Swift 3 中的 JSON 解析

    有没有人能够找到一种在 Swift 3 中解析 JSON 文件的方法 我已经能够返回数据 但在将数据分解为特定字段时我没有成功 我会发布示例代码 但我已经尝试了很多不同的方法但没有成功 并且没有保存任何代码 我想要解析的基本格式是这样的 提
  • 从 iOS 13 开始安排 iOS 后台任务

    我正在实现用于更新数据的BackgroundTasks 框架 但我遇到了以下问题 无法计划刷新App 错误域 BGTaskSchedulerErrorDomain代码 1 空 无法安排数据提取 Error Domain BGTaskSche
  • 查找已用应用程序名称的捆绑包/开发人员

    我正在尝试将应用程序上传到应用程序商店并收到以下错误 很容易理解 The App Name you have entered has already been used 该应用程序不在 iTunes 上 有什么方法可以找出谁拥有该应用程序或
  • 以弯曲格式显示文本

    我正在寻找以曲线格式绘制一些文本 我使用哪个控件并不重要 UITextField UILabel or UITextView 我只想显示如图所示的文本 仍在寻找解决方案 请帮忙 查看此链接 https nodeload github com
  • NSTimer 不触发选择器

    在带有 ARC 的 ios5 0 中 在我的 rootviewcontroller 中 我调用由应用程序委托持有的安全管理器对象中的方法 在该方法中 我设置计时器如下 NSTimer timer NSTimer scheduledTimer
  • 不明白 Swift 中的闭包示例

    我正在尝试了解 swift 和闭包 我被这个例子困住了 numbers map number Int gt Int in let result 3 number return result 什么是 number Int gt Int 它是一
  • 如何使用 Core Graphics 在我的触摸位置绘制一个圆圈?

    新程序员来了 我在尝试使用 Core Graphics 在触摸位置周围绘制描边弧时遇到问题 我有绘制圆圈的方法工作正常 并且我已经测试并在点击屏幕时注册触摸 但是当我尝试在点击时调用绘制圆圈的方法时 我收到错误 CG ContextBlah
  • NSCFData fastCharacterContents 崩溃? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我目前在控制台中收到此崩溃日志 20
  • AWS S3 公共对象与私有对象?

    回到 S3 我的存储桶中有图像的 URL 我将在我的应用程序中呈现这些图像 但它们被设置为私有 当我尝试单击该链接时 它显示 访问被拒绝 当我将链接的设置更改为公共时 它会通过 但是我读到公共访问并不是最安全的事情 所以这本质上是一个由两部
  • ios 导航 堆栈操作

    我在尝试从 iOS 应用程序操作导航堆栈时遇到问题 或者至少是由于这种操纵而产生的行为 我的情况 我有 3 个 ViewController 控制器a显示多个级别 控制器 b 是游戏视图 控制器 c 是某种分数 显然 我将在控制器 a 中选

随机推荐

  • 尝试向 Laravel 发送 android volley post 请求

    我使用 laravel 5 1 进行数据库连接并将 post 请求从 android 发送到 laravel 但异常显示 服务器错误 这是我的 Android 代码 package com example ankit postrequest
  • Selenium Python 改变 IP

    我正在使用 Selenium for Python 编写一个网络爬虫 抓取工具每小时会多次访问同一网站 因此我希望找到一种方法 每隔几次搜索就更改我的 IP 最好的策略是什么 我使用的是 Firefox 是否有任何我可以切换的预先编写的代码
  • Android Studio 中的 JavaCV 配置

    我知道有很多类似的问题 但由于 JavaCV 等库的开发 其中很多似乎已经过时了 我使用的代码来自在 Android 中使用图像和音频创建视频 https stackoverflow com questions 23775173 video
  • Chrome 说我的内容脚本不是 UTF-8

    收到错误Could not load file worker js for content script It isn t UTF 8 encoded gt file I chrome worker js chrome worker js
  • Springframework“需要重定向才能获得用户批准”

    我的 Spring Web 应用程序有问题 我想使用 web 应用程序访问 google 日历 api 因此我必须向 api 验证自己的身份并授予对日历的访问权限 但实际的问题是我收到了错误org springframework secur
  • 嵌套枚举的替代方案

    我正在尝试创建几个enums因此 这给出了语法Dropdown Category Subcategory 然而 我一直在读到这不是一个好主意 我的选择主要是因为我想不出任何其他方法来选择不同的enum值取决于类别的选择 然后子类别的选择取决
  • 对于给定的整数 a,找到总和为 a 的所有唯一的正整数组合

    不是家庭作业问题 我正在回答这些问题here http www careercup com question id 5653595164770304我遇到了这个问题 有人已经回答了 我已经尝试了很多方法来理解所使用的递归 但我无法理解它 有
  • Laravel Dusk:未知错误:调用函数结果缺少“值”

    我在使用 Laravel Dusk type 和 value 方法时遇到问题 我收到以下错误 php artisan dusk group activation Warning TTY mode is not supported on Wi
  • 相同的AVX指令集代码Intel Core与AMD Ryzen性能差距巨大

    我想使用AVX指令集来加速从8通道图像到8通道图像的卷积运算 我使用 3x3 卷积核 我的代码如下 const float kptr kernels const float bptr biases m256 out0 mm256 loadu
  • 在Python中下载之前获取文件的大小

    我正在从网络服务器下载整个目录 它工作正常 但我不知道如何在下载之前获取文件大小以比较它是否在服务器上更新 这可以像我从 FTP 服务器下载文件一样完成吗 import urllib import re url http www someu
  • tomcat webapps目录绝对路径?

    我将 tomcat 提取放在一个地方 而我的 webapps 目录可能在其他地方 那么如何获取我的Web应用程序的绝对路径呢 我的文件处理程序位于 webapps 内 我想找到我的 webapps 或应用程序目录的绝对路径 从 c 或 ho
  • GitHub 页面上的侧边栏

    我在 GitHub Pages 上托管了一个简单的网站 它是一个公共存储库 仅使用具有默认设置等的标准默认模板 它是直接从根目录发布的 本质上 按照官方 Github Pages 教程 一切都处于默认状态 我只想为我的目录显示一个侧边栏 注
  • 谷歌 API 服务帐户。即使使用域范围委派访问也只能看到服务帐户驱动器

    我目前使用的 Google 服务帐户已启用域范围委派 我点击了此链接https developers google com identity protocols oauth2 service account https developers
  • 在 Nginx 配置中使用代理传递之前传递代理 URL

    我需要传递一个代理 URL 来连接到 Nginx 中作为代理传递提到的其他 URL 示例 如果我必须通过 Linux 服务器连接到 google com 我必须将代理设置为 xyz org 80 然后才能连接到 google com 那么如
  • 在 Windows 上使用 FreeType 和 Qt5

    有谁知道是否可以使用 FreeType 构建 Qt5 作为 Windows 上的文本渲染器而不是本机渲染器 我尝试使用 qt freetype 编译 Qt5 但仍然得到错误的文本 我还需要做其他事情吗 在查看 DeadWarlock 提出的
  • 检查数据类字段是否有默认值的 Pythonic 方法

    我最近一直在使用 python 3 7 并正在寻找利用新数据类的方法 基本上我有一个方法可以迭代数据类字段并检查它们是否有默认值 from dataclasses import fields MISSING classmethod def
  • pm2 下的自定义日志记录

    我在我写入的节点应用程序中有一些有用的日志记录console log node server js gt gt var log nodeserver log 2 gt 1 但是 当在下面尝试相同的操作时pm2 pm2 start serve
  • python如何在赋值运算符之后赋值[重复]

    这个问题在这里已经有答案了 好吧 我确信这是一个非常愚蠢的问题 但是python如何给变量赋值呢 说有一个变量a并被赋值a 2 所以python为变量分配了一个内存位置并且a现在指向包含该值的内存位置2 现在 如果我分配一个变量b a变量b
  • 以编程方式编辑表单回复

    我有一个谷歌脚本 可以为转储到我的电子表格中的每个表单响应生成编辑网址 有没有办法以编程方式更改响应值 就像我实际打开 URL 并手动更改值一样 例如 假设某人提交了一份姓名字段为 Sam 的表单 我希望能够以编程方式编辑此响应 以便同一字
  • 设备锁定时在 Today 扩展中加载文件

    在我今天的设备解锁的扩展中 这行代码按预期工作 从图像路径返回数据 let imageData NSData contentsOfFile path 但是 当我的设备用密码锁定时 它返回零 当设备锁定时 有什么方法可以访问文件系统中的图像吗