2016-04-08 18 views
-1

Kullanıcı kamera veya konum iznini istediğinde bir işlevi nasıl çağırırım?Bir kullanıcı kamera izni verirse bir işlevi çağırın

Bir süre döngü kullanmayı düşündüm, ama bu zarif bir çözümden hoşlanmıyor. İzin durumunu ("Yetkili", "Belirsiz", vb.) Kontrol edebileceğimi biliyorum, ancak kullanıcının izin verdiği takdirde bana bildirmiyor.

Derhal haberdar olmanın bir yolu var mı?

+0

'CLLocationManger', konum izinleri değiştiğinde tetiklenen bir temsilci yöntemine sahiptir. OS, kamera izni değiştiğinde uygulamanızı öldürür. – dan

+0

@dan iOS yalnızca kullanıcı izni Ayarlar üzerinden değiştirirse bir uygulamayı öldürür. IOS kullanıcıyı ilk kez isterse kullanıcı bir seçim yaparsa, uygulama ölmez. – rmaddy

cevap

1

Geçerli izni ilk kontrol edebilirsiniz. Bilinmiyorsa, izin isteğinde bulunabilirsiniz ve kullanıcının ne seçtiğini bildirebilirsiniz. Böyle

şey kamera izni için çalışacak: konum izni için

AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo]; 
switch (status) { 
    case AVAuthorizationStatusAuthorized: 
     // User accepted permission in the past - take a picture 
     break; 
    case AVAuthorizationStatusDenied: 
     // User denied permission in the past - handle as needed 
     break; 
    case AVAuthorizationStatusRestricted: 
     // Restrictions prevent access to the camera - handle as needed 
     break; 
    case AVAuthorizationStatusNotDetermined: 
     [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) { 
      if (granted) { 
       // User just gave permission - take a picture 
      } else { 
       // User just denied permission - don't take a picture 
      } 
     }]; 
     break; 
} 

kod benzer olacaktır.

+0

@Cesare - bir şey mi değişti? Yanıtı kabul etmediğini fark ettim. – rmaddy

İlgili konular