iOS系统访问权限大全

iOS需要一些手机的隐私权限,下面介绍一下常用的隐私权限是否开启的获取方法

<!-- 相册 -->
<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>
<!-- 语音识别 -->
<key>NSSpeechRecognitionUsageDescription</key> 
<string>App需要您的同意,才能使用语音识别</string>
  • 打开设置中心
class func openSetCenter() {
        let url = URL.init(string: UIApplication.openSettingsURLString)
        if UIApplication.shared.canOpenURL(url!) {
            UIApplication.shared.open(url!, options: [:], completionHandler: nil)
        }
    }
  • 定位权限
class func isLocationAuthority() -> Bool {
        if CLLocationManager.locationServicesEnabled() && CLLocationManager.authorizationStatus() != .denied {
            return true
        }
        return false
    }
  • 相机权限
class func isCameraAuthority() -> Bool {
        let status = AVCaptureDevice.authorizationStatus(for: .video)
        if status == .restricted || status == .denied {
            return false
        }
        return true
    }
  • 相册权限
class func isLibraryAuthority() -> Bool {
        let status = PHPhotoLibrary.authorizationStatus()
        if status == .restricted || status == .denied {
            return false
        }
        return true
    }
  • 通知权限
class func isNotificationAuthority() -> Bool {
        var isOpen = false
        UNUserNotificationCenter.current().getNotificationSettings { settings in
            DispatchQueue.main.async {
                if settings.alertStyle == .none {
                    isOpen = false
                } else {
                    isOpen = true
                }
            }
        }
        return isOpen
    }
  • 运动权限
class func isHealthAuthority() -> Bool {
        if !HKHealthStore.isHealthDataAvailable() {
            return false
        }
        let healthStore = HKHealthStore()
        let type = HKObjectType.quantityType(forIdentifier: .height)!
        let status = healthStore.authorizationStatus(for: type)
        if status == .notDetermined {
            var isOpen = false
            let read = Set([HKObjectType]())
            let write = Set([HKSampleType]())
            healthStore.requestAuthorization(toShare: write, read: read) { success, error in
                isOpen = success
            }
            return isOpen
        } else if status == .sharingDenied {
            return false
        } else {
            return true
        }
    }
  • 网络权限
class func isNetAuthority() -> Bool {
        let cellular = CTCellularData()
        var isOpen = false
        cellular.cellularDataRestrictionDidUpdateNotifier = { status in
            if status == .restrictedStateUnknown || status == .notRestricted {
                isOpen = false
            } else {
                isOpen = true
            }
        }
        return isOpen
    }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好,iOS开发中需要使用Wi-Fi的功能需要在应用程序中获取Wi-Fi的权限。获取Wi-Fi权限的步骤如下: 1. 在应用程序的Info.plist文件中添加以下代码,允许应用程序访问Wi-Fi信息: ```xml <key>NSWi-FiUsageDescription</key> <string>需要使用您的Wi-Fi信息来进行某些操作</string> ``` 在字符串中,您可以描述应用程序为什么需要访问Wi-Fi信息。这个描述将显示在系统弹出的权限请求对话框中,让用户知道应用程序为什么需要Wi-Fi权限。 2. 在应用程序中使用系统提供的WiFiManager类来访问Wi-Fi信息。例如,以下代码将检查当前设备是否连接到Wi-Fi网络: ```swift import SystemConfiguration.CaptiveNetwork func getWiFiInfo() -> [AnyHashable: Any]? { var wifiInfo: [AnyHashable: Any]? if let interfaces = CNCopySupportedInterfaces() as NSArray? { for interface in interfaces { if let interfaceInfo = CNCopyCurrentNetworkInfo(interface as! CFString) as NSDictionary? { wifiInfo = interfaceInfo as? [AnyHashable: Any] break } } } return wifiInfo } let wifiInfo = getWiFiInfo() if let ssid = wifiInfo?["SSID"] as? String { print("当前连接的Wi-Fi名称为:\(ssid)") } else { print("当前未连接到Wi-Fi网络") } ``` 这段代码使用了SystemConfiguration框架中的CaptiveNetwork类来获取当前设备连接的Wi-Fi网络信息。注意,在使用CaptiveNetwork类时,需要导入SystemConfiguration框架。 希望这些步骤能够对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值