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,如若轉載,請註明來源。
相關文章
- iOS 8之後相機授權判斷iOS
- 授權機制與授權模型研究模型
- 華為授權培訓機構
- DB2授權和特權安全機制DB2
- js判斷手機系統JS
- 計算機如何理解事物的相關性-文件的相似度判斷計算機
- 認證授權方案之授權初識
- oracle顯式授權和隱式授權Oracle
- JavaScript 判斷 iPhone X Series 機型JavaScriptiPhone
- 判斷手機號 h5H5
- android判斷手機是否rootAndroid
- 深入淺出OAuth 2.0授權機制OAuth
- mysql 授權MySql
- oracle授權Oracle
- 表列授權
- Spring Security 基於URL的許可權判斷Spring
- 基於二進位制的許可權判斷
- 認證授權方案之授權揭祕 (上篇)
- ASP.NET Core策略授權和 ABP 授權ASP.NET
- 微信小程式授權登入以及使用者資訊相關介面調整導致授權框不彈出微信小程式
- 怎麼判斷dns汙染,怎麼判斷dns汙染,具體判斷方法DNS
- 授權物件許可權後的授權者顯示問題物件
- 【認證與授權】Spring Security的授權流程Spring
- JS的判斷語句:判斷、迴圈JS
- IdentityServer4之Authorization Code(授權碼)相對更安全IDEServer
- 前端微信授權前端
- Laravel授權策略Laravel
- 授權指令碼指令碼
- 對列授權
- 動態授權
- 字元判斷字元
- springcloud Oauth2授權,四種授權型別SpringGCCloudOAuth型別
- js函式中的if判斷和a==b判斷JS函式
- 使用帶型別判斷的比較判斷型別
- 深入理解Spring Security授權機制原理Spring
- 理解OAuth2.0協議和授權機制OAuth協議
- 諾基亞明年要做安卓手機?官方:品牌授權安卓
- Tomcat報錯 主機未授權已到期!Tomcat