当你第一次在应用中打开相册的时候,系统会提示你是否允许用户访问相册,如果你选择不允许的话,你以后在该应用中将无法访问相册,如果想要重新允许,那么得自己手动去“隐私设置”里面去设置,在程序中怎么获取用户是否拥有对相册的访问权限,然后做出相应的操作尼,首先下面列出了相册的一些权限值和对应的含义:
在iOS8之后:
/**
PHAuthorizationStatusNotDetermined = 0, // 用户尚未对该应用程序作出选择
PHAuthorizationStatusRestricted, // 此应用程序未授权访问照片数据。
PHAuthorizationStatusDenied, // 用户已明确否认了这一应用程序访问的照片数据。
PHAuthorizationStatusAuthorized // 用户已授权此应用程序访问照片数据。
*/
在iOS8之前:
/**
ALAuthorizationStatusNotDetermined = 0, // 用户尚未对该应用程序作出选择
ALAuthorizationStatusRestricted, // 此应用程序未授权访问照片数据。
ALAuthorizationStatusDenied, // 用户已明确否认了这一应用程序访问的照片数据。
ALAuthorizationStatusAuthorized // 用户已授权此应用程序访问照片数据。
*/
- -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
- {
- //获取图片的NSURL 来源于AssetsLibrary.framework #import <AssetsLibrary/AssetsLibrary.h>
- NSURL *url = [info objectForKey:UIImagePickerControllerReferenceURL];
- //ALAssetsLibrary 获取图片和视频
- ALAssetsLibrary *library = [[ALAssetsLibrary alloc]init];
- //根据url获取指定的图片 如果获取到了资源执行resultBlock,否则执行failureBlock
- //ALAsset实例 代表一个图片或者视频
- [library assetForURL:url resultBlock:^(ALAsset *asset){
- //defaultRepresentation 获取资源文件的默认属性
- //metadata 获取数据的数据,就是在默认属性中的数据,称之为元数据
- NSDictionary *imageData = [[NSMutableDictionary alloc]initWithDictionary:asset.defaultRepresentation.metadata];
- //kCGImagePropertyGPSDictionary 关于GPS的字典数据 来源于ImageIO.framework #import <ImageIO/ImageIO.h>
- NSDictionary *gpsData = [imageData objectForKey:(NSString *)kCGImagePropertyGPSDictionary];
- //打印纬度
- NSLog(@"%@",[gpsData objectForKey:@"Altitude"]);
- }failureBlock:^(NSError *error){
- NSLog(@"error:%@",error);
- }];
- }