作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在做一个 POC,看看我是否能找到震动的强度。
class ViewController: UIViewController {
override func motionBegan(motion: UIEventSubtype, withEvent event: UIEvent) {
println("started shaking!")
}
override func motionEnded(motion: UIEventSubtype, withEvent event: UIEvent) {
println("ended shaking!")
}
}
我没有看到任何可以告诉我震动有多强烈的东西。就我而言,这种摇晃可能会持续几秒钟。
最佳答案
这是我放入带有一些类变量和常量的 didAccelerate 回调中的代码:
UIAccelerationValue accelX, accelY, accelZ;
#define kAccelerometerFrequency 25 //Hz
#define kFilteringFactor 0.1
#define kMinShakeInterval 0.1
#define kShakeAccelerationThreshold 0.2
-(CMMotionManager*) motionManager{
if (_motionManager==nil) {
_motionManager=[[CMMotionManager alloc] init];
_motionManager.accelerometerUpdateInterval=1.0/25;
_motionManager.gyroUpdateInterval=1.0/25;
}
return _motionManager;
}
-(void) viewDidLoad{
[...]
[[self motionManager] startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue]
withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
[self didAccelerate:accelerometerData.acceleration];
if(error){
NSLog(@"%@", error);
}
}];
[...]
}
- (void)didAccelerate:(CMAcceleration)acceleration{
UIAccelerationValue lenght, x, y, z;
accelX=acceleration.x*kFilteringFactor + accelX * (1.0 - kFilteringFactor);
accelY=acceleration.y*kFilteringFactor + accelY * (1.0 - kFilteringFactor);
accelZ=acceleration.z*kFilteringFactor + accelZ * (1.0 - kFilteringFactor);
x=acceleration.x - accelX;
y=acceleration.y - accelY;
z=acceleration.z - accelZ;
lenght=sqrt(x*x + y*y + z*z);
if (lenght>=kShakeAccelerationThreshold && (CFAbsoluteTimeGetCurrent()>lastTime + kMinShakeInterval)){
//execute shaking actions on main thread
}
}
关于ios - 有没有办法获得震动的强度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30058947/
这应该毫不费力,因为Jolt主要是为了转换ES和mongodb响应而构建的。但是我无法弄清楚 我想解析ES响应并仅打印所选字段。例如我想将响应转换为 { "time" : 63, "totalhits
我想在检测到摇动事件时启动应用程序的 Activity 。我希望这发生在我的应用程序之外。 有很多很棒的代码 fragment here和 here例如,如何正确实现SensorEventListen
我遇到了这个小问题。我的 wrapper 里有一个盒子,我想来回摇晃它。效果很好,但是当我向 #box 添加填充时,填充会在动画打开时消失。 #box 还有一个 box-sizing: border-
我有一个输入如下: { "total": "12", "sub" : [ "6", "6", "4", "8", "12" ] } 我想要如下输出: [ [6,6], [4
我正在尝试使用 JOLT 进行 JSON 转换。但我陷入了分割 JSON 数组并附加其他详细信息的位置如当前输出中所示,我能够提取第 0 个值并附加详细信息,但如何提取下一个元素并附加 OfferId
我是一名优秀的程序员,十分优秀!