使用AirDrop分享资产库中的video失败
使用AirDrop,我想分享资产库中的video。
关于AirDrop,文件说:
使用此服务时,可以为活动项目提供NSString,NSAttributedString,UIImage,ALAsset和NSURL对象作为数据。 你也可以指定其内容使用资产库scheme的NSURL对象。 您也可以提供包含列出的数据types的NSArray或NSDictionary对象。
我所看到的是,如果活动项目的数据是资产库scheme的NSURL,则传输将失败,并显示以下错误:
发件人kSFOperationEventErrorOccured {错误=“错误域= SFOperation代码= -6 \”传输失败,因为您没有权限读取\ U201cIMG_0119.MP4 \ U201d。\“UserInfo = 0x155f5db0 {NSLocalizedDescription =传输失败,因为你不\ U2019t有权读取\ U201cIMG_0119.MP4 \ U201d。}“; FileIcon =“”; Files =(); SessionID = 9165CCC70A39; }
通过AirDrop成功共享资源库中的video的唯一方法是将文件复制到临时位置,然后将活动项目的数据设置为新的NSURL。 基本上是这样的:
- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType { ALAssetRepresentation* assetRepresentation = [self.asset defaultRepresentation]; NSString* outputDirectory = [NSString stringWithFormat:@"%@", NSTemporaryDirectory()]; NSString* path = [outputDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", assetRepresentation.filename]]; NSUInteger size = (NSUInteger)assetRepresentation.size; NSMutableData* data = [NSMutableData dataWithLength:size]; NSUInteger bytesRead = [assetRepresentation getBytes:data.mutableBytes fromOffset:0 length:size error:nil]; if ([data writeToFile:path atomically:YES]) { self.url = [NSURL fileURLWithPath:path]; } return url; }
有没有人设法从资产库共享video,而不需要将文件复制到临时位置? 我错过了什么,或者这是一个在SDK中的错误?
- iOS共享自定义对话框
- ios非对话Facebook分享失败,没有错误,没有反馈
- Hackhactons中的iOS开发与未知的开发者? 如何共享Xcode和debugging工具给没有OSX设备的人?
- 共享应用程序时产生的“FBAppCall无效使用”错误 – Facebook应用程序ID未注册为URLscheme
- 如何通过iOS应用程序中的其他应用程序共享内容/数据,就像我们在Intent.ACTION_SEND的Android应用程序中所做的一样?
- iOS共享图像和文本到WhatsApp
- 社交活动表(如iOS 6)
- 如何与CloudKit的CKShare共享?
- 在我的iPhone应用程序中是否有任何开源产品可以让我像Instagram一样分享?