我尝试NSURLSession在iOS 8中使用共享扩展程序上传图像,但在调用后立即出现此错误
[task resume]
Error Domain=NSURLErrorDomain Code=-995 "The operation couldn’t be completed. (NSURLErrorDomain error -995.)"
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:DEFAULT_SHARE_SESSION_ID];
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:self.queue];
NSURLRequest *request = [self getMultipartUploadRequest:data url:url albumId:albumId];
// ... saving file here to Documents folder
NSURLSessionUploadTask *uploadTask = [session uploadTaskWithRequest:request fromFile:url1];
[uploadTask resume];
Run Code Online (Sandbox Code Playgroud)
而且我在控制台中也有这条消息:
Attempted to create a task in a session that has been invalidated
Run Code Online (Sandbox Code Playgroud)
此代码绝对适用于应用程序,但在共享扩展程序中不起作用.我找不到代码-995的含义.
有任何想法吗?
我只希望受信任的设备连接到我的外围设备。我不希望任何人能够发现我的外围设备的服务和特征。\n因此,在连接到外围设备之前,我想显示带有 PIN 码的警报。有可能做到吗?最简单的方法是什么?
\n\n我找不到这个问题的答案,并尝试通过将 CBAttributePermissionsWriteEncryptionRequired 添加到权限来实现加密特征:
\n\nself.characteristic = [[CBMutableCharacteristic alloc] initWithType:[JUUIDBuilder uuidWith:@"1706"]\n properties: CBCharacteristicPropertyWrite\n value:nil permissions:CBAttributePermissionsWriteEncryptionRequired];\nRun Code Online (Sandbox Code Playgroud)\n\n由于某种原因,它没有帮助,因为我可以一直从我的第二个设备写入值,而无需任何安全检查。(CBAttributePermissionsReadEncryptionRequired 的文档说:
\n\n\n\n\n...该特征配置为仅允许受信任的设备读取或订阅其值。当连接的远程中央设备尝试读取或订阅此特性\xe2\x80\x99s 值时,核心蓝牙会尝试将本地外设与中央设备配对以创建安全连接。
\n
这对我来说没有意义。这里的“可信设备”是什么?
\n\n谁能帮我?仅允许来自具有 PIN 码确认的受信任设备的连接的最佳实践是什么?
\n