Нуждается
Я хочу выключить экран, когда пользователь кладет свой iphone вверх ногами на стол. В то же время я не хочу, чтобы бесконтактный монитор был включен все время, так как это очень неудобно для пользователя и часто пропускает выстрелы в зависимости от того, как вы захватываете устройство.
Зачем
Это для того, чтобы уйти ночью и сэкономить заряд аккумулятора и время работы экрана, продолжая работу приложения.
Обходной путь
Я думаю о том, чтобы использовать акселерометр, чтобы определить, опущено ли лицо, если это так, активируйте датчик приближения. Простые вещи ...
Проблема
На практике обходной путь не работает, он показывает, что если «активировать» цензор при активации, он не будет регистрировать свое текущее состояние.
Обновить UIDevice как-нибудь?
Что я использую
-(id)init {
if ((self = [super init]))
{
NSLog(@"Init ShakerAnalizer");
accelerometer = [UIAccelerometer sharedAccelerometer];
accelerometer.delegate = self;
accelerometer.updateInterval = 5.0f;
}
return self;
}
-(void)accelerometer:(UIAccelerometer *)accel didAccelerate:(UIAcceleration *)acceleration
{
if (accelerometer)
{
NSLog(@"Accelerometer Z::: %f", acceleration.z);
if (acceleration.z > kFlippedThreshold)
device.proximityMonitoringEnabled = YES;
else
device.proximityMonitoringEnabled = NO;
}
}