2016-06-28 6 views
0

ユーザーが画像を選択またはキャプチャしたときに、自分のアプリケーションのカメラと写真のアクセス許可を確認しています。 私はこのコードを使用しています。ユーザーがiOSでアクセスを許可しないときにimagePickerを終了する方法

-(void)choosePhotoFromExistingImages 
{ 
    ALAuthorizationStatus status = [ALAssetsLibrary authorizationStatus]; 
    if (status == ALAuthorizationStatusDenied || status == ALAuthorizationStatusRestricted) { 
     [APPDELEGATE showAlertViewForPhotos]; 
     //show alert for asking the user to give permission  
    } 
    else{ 
     if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypePhotoLibrary]) 
     { 
      UIImagePickerController *controller = [[UIImagePickerController alloc] init]; 
      controller.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; 
      controller.allowsEditing = YES; 
      controller.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeImage, nil] ; 
      controller.delegate = self; 
      [self presentViewController: controller animated: YES completion: nil]; 
     } 
    } 
} 

コードが正常に動作しているが、ユーザー初めてのフォトライブラリには、それはカメラで何が起こって、これと同じことのように黒い画面を表示しないようにしてください選択した場合。 私が必要としているのは、ユーザーが画像をクリックすると許可されないということです。そのユーザーが許可をキャンセルしていることを確認できるので、imagepickerまたはカメラを閉じることができます。 enter image description here

答えて

2

あなたは、私が使用しています許可を確認するためにそれ

How do I react to a user choosing "Don't Allow" when asking for permission to access Photos?

+0

はいを​​チェックするためにALAssetsLibrary authorizationStatusを使用することができ、ユーザはまだそこに、その後の私のイメージピッカーやカメラを初めて許可されていません]を選択だけでなく、どのような場合に、I – guru

+1

"あなたが持っている唯一のオプションは、authorizationStatusがALAuthorizationStatusNotDeterminを返すかどうかを確認することです。そうであれば、ALAssetsLibrary enumerateGroupsWithTypes:usingBlock:failureBlock:を使用し、結果を待ってください。それがALAuthorizationStatusDeniedの場合は、ユーザーが「Do not Al "低い" – Proton

+0

ありがとうございました。カメラでも同じことができますか? – guru

関連する問題