iOS8相機授權判斷
最近在做自定義相機,然後就是iOS8要授權才能使用,如果使用者拒絕,那麼,就不能操作。
問題是,怎麼知道使用者第一次選擇相機,並且應用有開啟相機的許可權?
// 在iOS7 時,只有部分地區要求授權才能開啟相機
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_7_1) {
// Pre iOS 8 -- No camera auth required.
}else {
// iOS 8 後,全部都要授權
// Thanks: http://stackoverflow.com/a/24684021/2611971
AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
switch (status) {
case AVAuthorizationStatusNotDetermined:{
// 許可對話沒有出現,發起授權許可
[AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {
if (granted) {
//第一次使用者接受
}else{
//使用者拒絕
}
}];
break;
}
case AVAuthorizationStatusAuthorized:{
// 已經開啟授權,可繼續
break;
}
case AVAuthorizationStatusDenied:
case AVAuthorizationStatusRestricted:
// 使用者明確地拒絕授權,或者相機裝置無法訪問
break;
default:
break;
}
}
最後一個坑:
沒有解決:
而問題的關鍵是,在第一次授權時,彈出的AlertView,其實,應用已經在後臺了。當使用者選擇其中一個時,會從新回到前臺,導致第一次時,如果要開啟相機,會非常的慢,暫時還不知道這個問題怎麼解決?歡迎在討論區,謝謝大家!
補充:2015.7.26
發現其它相機應用,剛開啟時,就詢問打授權,可能這就是目前比較好的解決方案?
- 如果有什麼疑問,可以在評論區一起討論;
- 如果有什麼不正確的地方,歡迎指導!
注:本文首發於 iHTCboy`s blog,如若轉載,請註明來源。
相關文章
- js判斷手機系統JS
- 計算機如何理解事物的相關性-文件的相似度判斷計算機
- Spring Security 基於URL的許可權判斷Spring
- 認證授權方案之授權初識
- JavaScript 判斷 iPhone X Series 機型JavaScriptiPhone
- django中介軟體中判斷前端是不是ajax請求,從而判斷是否有許可權Django前端
- IdentityServer4之Authorization Code(授權碼)相對更安全IDEServer
- 深入淺出OAuth 2.0授權機制OAuth
- ASP.NET Core策略授權和 ABP 授權ASP.NET
- 認證授權方案之授權揭祕 (上篇)
- 【認證與授權】Spring Security的授權流程Spring
- 怎麼判斷dns汙染,怎麼判斷dns汙染,具體判斷方法DNS
- JS的判斷語句:判斷、迴圈JS
- 【ASP】判斷是否是手機訪問
- if 判斷使用
- 授權|取消授權MYSQL資料庫使用者許可權MySql資料庫
- springcloud Oauth2授權,四種授權型別SpringGCCloudOAuth型別
- 深入理解Spring Security授權機制原理Spring
- 使用帶型別判斷的比較判斷型別
- js函式中的if判斷和a==b判斷JS函式
- Shiro(授權Authorization)
- abp授權原理
- 認證授權
- Laravel授權策略Laravel
- SpringSecurity之授權SpringGse
- 原始碼防洩密系統與程式相關性判斷原始碼
- 微信小程式授權登入以及使用者資訊相關介面調整導致授權框不彈出微信小程式
- 求問關於Paypal預授權支付php-sdk相關功能PHP
- HUAWEI交換機如何判斷環路故障
- 理解OAuth2.0協議和授權機制OAuth協議
- 判斷空值
- 素數判斷
- 原型判斷方法原型
- 判斷素數
- 判斷語句
- 判斷難點
- nginx 多if判斷。Nginx
- 認證授權:IdentityServer4 - 各種授權模式應用IDEServer模式
- 使用java操作ranger,hdfs ranger授權操作,hive ranger授權操作JavaRangerHive