2014-12-16 2 views
2

Я работаю над проектом, и я хочу посмотреть, работает ли датчик близости и что такое BatteryState. Вот мой код-iOS UIDevice Swift

import Foundation 
import UIKit 

class DeviceMonitor { 

    init() { 
     UIDevice.currentDevice().batteryMonitoringEnabled = true 
     UIDevice.currentDevice().proximityMonitoringEnabled = true 

     //Loops for ease of checking 
     var timer: Bool = true 
     while (timer == true){ 
      sleep(2) 
      BatteryState() 
      ProximityState() 
     } 
    } 

    func BatteryState() { 
     var batterystate: UIDeviceBatteryState = UIDevice.currentDevice().batteryState 
     println(batterystate) 
    } 

    func ProximityState() { 
     var proximitystate: Bool = UIDevice.currentDevice().proximityState 
     println(proximitystate) 
    } 
} 

Моя проблема, я просто кажется, чтобы получить (значение Enum), как мой выход для BatteryState и ProximityState всегда ложно (даже при удерживании и экран становится черным). Кроме того, как я могу сравнить BatteryState (это не строка? Это, вероятно, noobish, но я просто изучаю Swift ...

ответ

1

Вы должны называть свои функции, начиная с буквы нижнего регистра. Вы должны сделать следующее:

var batteryState: String { 
    if UIDevice.currentDevice().batteryState == UIDeviceBatteryState.Unplugged { 
     return "Unplugged" 
    } 
    if UIDevice.currentDevice().batteryState == UIDeviceBatteryState.Charging { 
     return "Charging" 
    } 
    if UIDevice.currentDevice().batteryState == UIDeviceBatteryState.Full { 
     return "Full" 
    } 
    return "Unknown" 
} 

var batteryCharging: Bool { 
    return UIDevice.currentDevice().batteryState == UIDeviceBatteryState.Charging 
} 

var batteryFull: Bool { 
    return UIDevice.currentDevice().batteryState == UIDeviceBatteryState.Full 
} 

var unPlugged: Bool { 
    return UIDevice.currentDevice().batteryState == UIDeviceBatteryState.Unplugged 
} 

Включить близость мониторинга только тогда, когда ваше приложение должно быть уведомление об изменениях в состоянии близости. в противном случае, отключить мониторинг близости. значение по умолчанию является ложным.

Не все IOS устройства имеют близость датчики. Чтобы определить, доступен ли мониторинг близости , попробуйте включить его. Если значение свойства proximityMonitoringEnabled остается ложным, то мониторинг близости недоступен.

var proximityState: Bool { 
    UIDevice.currentDevice().proximityMonitoringEnabled = true 

    return UIDevice.currentDevice().proximityMonitoringEnabled ? UIDevice.currentDevice().proximityState : false 
} 

использование:

let myBatteryStateDescription = batteryState 

let myProximityStateDescription = proximityState ? "True" : "False" 

if proximityState { 
    // do this 
} else { 
    // do that 
} 
+0

спасибо так много. по какой-то причине, состояние близости все еще остается на ложном ... – BCMET25

+0

извините за поздний ответ. Я должен включить его, прежде чем проверять его. https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDevice_Class/# // apple_ref/ОКК/instp/UIDevice/proximityMonitoringEnabled –

Смежные вопросы