-2
我必须制作一个应用程序,用户只有在iPhone尚未使用时才能拍照。您能否告诉我如何继续。任何帮助将不胜感激。如何检测iphone是否仍然?
以下是我已经尝试了代码,请推荐其上的改进,该代码是给干输出
_previousMotionValue = 0.0f;
memset(xQueue, 0, sizeof(xQueue));
memset(yQueue, 0, sizeof(yQueue));
queueIndex = 0;
[_motionManager startAccelerometerUpdatesToQueue:_motionManagerUpdatesQueue withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
if ([_motionManagerUpdatesQueue operationCount] > 1) {
return;
}
xQueue[queueIndex] = -accelerometerData.acceleration.x;
yQueue[queueIndex] = accelerometerData.acceleration.y;
queueIndex++;
if (queueIndex >= QueueCapacity) {
queueIndex = 0;
}
float xSum = 0;
float ySum = 0;
int i = 0;
while (i < QueueCapacity)
{
xSum += xQueue[i];
ySum += yQueue[i];
i++;
}
ySum /= QueueCapacity;
xSum /= QueueCapacity;
double motionValue = sqrt(xSum * xSum + ySum * ySum);
CGFloat difference = 50000.0 * ABS(motionValue - _previousMotionValue);
if (difference < 100)
{
//fire event for capture
}
[view setVibrationLevel:difference];
_previousMotionValue = motionValue;
}];
基于振动水平,我设置不同的图像如绿色,黄色,红色。 我选择的阈值100
我试过类似的逻辑,你可以在更新后的问题中发现,但它给出了生涩的输出。 – 2013-02-11 19:05:05
尝试使用低通滤波器。其中一个包含在文档中的示例应用程序“AccelerometerGraph”中。当我们将它用于加速计数据时,它会更好,更顺畅。 – Tricertops 2013-02-11 19:48:12
总是会有噪音影响运动传感器。你总是会得到少量的生涩运动。你必须找出你可以处理的门槛。 – Fogmeister 2013-02-11 20:23:01