UCAuthorityManager.m 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. //
  2. // UCAuthorityManager.m
  3. // underCover
  4. //
  5. // Created by 张灿 on 2017/4/22.
  6. // Copyright © 2017年 shareSmile. All rights reserved.
  7. //
  8. #import "UCAuthorityManager.h"
  9. #import <Photos/Photos.h>
  10. @implementation UCAuthorityManager
  11. + (void)cameraAuthority:(handleBlock)handleBlock denied:(deniedBlock)deniedBlock{
  12. AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
  13. if(authStatus == AVAuthorizationStatusRestricted || authStatus == AVAuthorizationStatusDenied){
  14. deniedBlock();
  15. }else if(authStatus == AVAuthorizationStatusAuthorized){
  16. handleBlock();
  17. }else{
  18. [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {
  19. if (granted)
  20. {
  21. handleBlock();
  22. }
  23. }];
  24. }
  25. }
  26. + (void)albumAuthority:(handleBlock)handleBlock denied:(deniedBlock)deniedBlock{
  27. PHAuthorizationStatus photoAuthorStatus = [PHPhotoLibrary authorizationStatus];
  28. if (photoAuthorStatus==PHAuthorizationStatusRestricted || photoAuthorStatus==PHAuthorizationStatusDenied) {
  29. deniedBlock();
  30. }else if(photoAuthorStatus==PHAuthorizationStatusAuthorized){
  31. handleBlock();
  32. }else{
  33. [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
  34. if (status == PHAuthorizationStatusAuthorized){
  35. handleBlock();
  36. }
  37. }];
  38. }
  39. }
  40. + (void)microPhoneAuthority:(handleBlock)handleBlock denied:(deniedBlock)deniedBlock{
  41. AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio];
  42. if(authStatus == AVAuthorizationStatusRestricted || authStatus == AVAuthorizationStatusDenied){
  43. deniedBlock();
  44. }else if(authStatus == AVAuthorizationStatusAuthorized){
  45. handleBlock();
  46. }else{
  47. [AVCaptureDevice requestAccessForMediaType:AVMediaTypeAudio completionHandler:^(BOOL granted) {
  48. if (granted)
  49. {
  50. handleBlock();
  51. }
  52. }];
  53. }
  54. }
  55. @end