關於相機相簿的一些實用技術
最近做專案遇到了一些問題,就蒐集了一些資料,集中在了一起
感謝:
CSDN 博主 [小手一背愛誰誰]
http://blog.csdn.net/saw471/article/details/52679746
wentian的部落格
http://www.2cto.com/kf/201608/532614.html
本人只是搬運工,如有冒犯,請見諒!
一、許可權狀態說明
相簿、相機、通訊錄等授權狀態目前都有種,都可以對應以下幾種狀態:
AuthorizationStatusNotDetermined // 使用者從未進行過授權等處理,首次訪問相應內容會提示使用者進行授權
AuthorizationStatusAuthorized = 0, // 使用者已授權,允許訪問
AuthorizationStatusDenied, // 使用者拒絕訪問
AuthorizationStatusRestricted, // 應用沒有相關許可權,且當前使用者無法改變這個許可權,比如:家長控制
二、許可權獲取(以下都是iOS8之後的)
1.相簿許可權
是否支援
[UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]
獲取許可權狀態
PHAuthorizationStatus authStatus = [PHPhotoLibrary authorizationStatus];
請求許可權
[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
}];
許可權狀態
typedef NS_ENUM(NSInteger, PHAuthorizationStatus) {
PHAuthorizationStatusNotDetermined = 0, // User has not yet made a choice with regards to this application
PHAuthorizationStatusRestricted, // This application is not authorized to access photo data.
// The user cannot change this application’s status, possibly due to active restrictions
// such as parental controls being in place.
PHAuthorizationStatusDenied, // User has explicitly denied this application access to photos data.
PHAuthorizationStatusAuthorized // User has authorized this application to access photos data.
} NS_AVAILABLE_IOS(8_0);
2.拍照許可權
是否支援
[UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]
獲取許可權狀態
AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
請求許可權
[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
}];
許可權狀態
typedef NS_ENUM(NSInteger, AVAuthorizationStatus) {
AVAuthorizationStatusNotDetermined = 0,
AVAuthorizationStatusRestricted,
AVAuthorizationStatusDenied,
AVAuthorizationStatusAuthorized
} NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;
三、拒絕授權的處理
使用者拒絕授權後,如果訪問相應內容可能會出現一些類似沒有資料的情況,此時應該給使用者提示,引導使用者授權。
跳轉到應用設定:
NSURL *settingUrl = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication] canOpenURL:settingUrl]) {
[[UIApplication sharedApplication] openURL:settingUrl];
}
四、info.plist 裡面的相關配置
<!-- 相簿 -->
<key>NSPhotoLibraryUsageDescription</key>
<string>App需要您的同意,才能訪問相簿</string>
<!-- 相機 -->
<key>NSCameraUsageDescription</key>
<string>App需要您的同意,才能訪問相機</string>
<!-- 麥克風 -->
<key>NSMicrophoneUsageDescription</key>
<string>App需要您的同意,才能訪問麥克風</string>
<!-- 位置 -->
<key>NSLocationUsageDescription</key>
<string>App需要您的同意,才能訪問位置</string>
<!-- 在使用期間訪問位置 -->
<key>NSLocationWhenInUseUsageDescription</key>
<string>App需要您的同意,才能在使用期間訪問位置</string>
<!-- 始終訪問位置 -->
<key>NSLocationAlwaysUsageDescription</key>
<string>App需要您的同意,才能始終訪問位置</string>
<!-- 日曆 -->
<key>NSCalendarsUsageDescription</key>
<string>App需要您的同意,才能訪問日曆</string>
<!-- 提醒事項 -->
<key>NSRemindersUsageDescription</key>
<string>App需要您的同意,才能訪問提醒事項</string>
<!-- 運動與健身 -->
<key>NSMotionUsageDescription</key> <string>App需要您的同意,才能訪問運動與健身</string>
<!-- 健康更新 -->
<key>NSHealthUpdateUsageDescription</key>
<string>App需要您的同意,才能訪問健康更新 </string>
<!-- 健康分享 -->
<key>NSHealthShareUsageDescription</key>
<string>App需要您的同意,才能訪問健康分享</string>
<!-- 藍芽 -->
<key>NSBluetoothPeripheralUsageDescription</key>
<string>App需要您的同意,才能訪問藍芽</string>
<!-- 媒體資料庫 -->
<key>NSAppleMusicUsageDescription</key> <string>App需要您的同意,才能訪問媒體資料庫</string>
*有個封裝的工具類,可使用WTAuthorizationTool,裡面還有通訊錄的許可權
pod "WTAuthorizationTool"
相關文章
- 關於圖文識別功能相關技術的大致實現
- 關於量子技術的一些概念糾正
- Weex技術相關
- 相機相簿OC 詳解
- 關於IT,關於技術
- 關於技術人員自身能力提升的一些思考
- 關於人像後期處理進階的相關技術步驟
- 【區塊鏈技術】區塊鏈的一些相關演算法區塊鏈演算法
- 關於多層交換技術的綜合應用
- Java相關技術點及技術內容Java
- 關於一些類病毒隱藏技術的設想 (轉)
- iOS 端 DNS 相關技術iOSDNS
- java 相關技術與框架Java框架
- Java 相關的編譯技術(轉)Java編譯
- 軟體相關技術及其在國內的應用 (轉)
- 一些個人認為有用的公眾號(Android與技術相關)Android
- 日立開發無鏡頭相機 無鏡頭技術或會用於手機上
- 關於Selenium Chrome Driver相關的一些資源Chrome
- 關於技術的選型
- 關於技術分享的思考
- 有關技術管理的一些思考
- 關於技術方案
- 關於技術文件
- 關於垃圾回收的一些基本原理及技術解析
- 關於尋路演算法的一些思考(12):AI 技術演算法AI
- 關於UI自動化技術及測試的一些看法UI
- 驗證碼的作用和相關技術
- 微服務框架相關技術整理微服務框架
- 遊戲伺服器相關技術遊戲伺服器
- 培訓當前相關技術
- 深入淺出換膚相關技術以及如何實現
- 關於大資料的建模、分析、挖掘技術應用大資料
- 關於閱讀技術性書籍-談談我的一些做法
- 關於Oracle的技術問答Oracle
- 關於一些php面試之物件導向的相關知識PHP面試物件
- Linux技術相關命令有哪些Linux
- IPv6 相關技術調研
- 大資料相關技術有哪些?大資料