在我的应用程序中,我想检测周围的磁场/电磁场有多强。我想要实现的是测量磁场的变化,知道它是否比控制测量更强,或者是否更低。这是我的密码:
- (void)setupLocationManager {
self.locationManager = [[CLLocationManager alloc] init];
if ([CLLocationManager headingAvailable] == NO) {
self.locationManager = nil;
} else {
self.locationManager.headingFilter = kCLHeadingFilterNone;
self.locationManager.delegate = self;
[self.locationManager startUpdatingHeading];
}
}
// CLLocationManagerDelegate
- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)heading {
CGFloat magnitude = sqrt(heading.x * heading.x + heading.y * heading.y + heading.z * heading.z);
if (self.defaultMagnitudeValue == 0.f) {
self.defaultMagnitudeValue = magnitude;
}
self.curentMagnitudeValue = magnitude;
}震级值对设备周围的磁场作出反应,问题是,您需要实际上是接近这样一个磁场源的。
因此,问题是: iOS应用程序是否有可能测量距离超过10-20厘米的磁场?如果是这样的话,是怎么做的?
P.S.:我也检查过苹果的计应用程序,它有几乎相同的代码和完全相同的问题。
发布于 2016-03-15 01:25:10
当然可以,磁场一定要很强!
你的第一个限制可能是硬件。正如在在iOS中,来自核心位置和核心运动框架的磁场值之间有什么区别?中所指出的,这些原始值的范围可能是有限的。在一些硬件和iOS版本中,将它们限制在-128到+128微。在iPhone 6上,我可以得到超乎这个范围的微卫星读数,但这并不一定有帮助。苹果似乎没有为磁强计读数的准确性提供任何参考,我们可以测量出纳米级的值,但是我们得到的结果可能是毫无意义的噪音。
地球表面的磁场将是25至65只微型。任何你希望测量的场都需要比期望的测量距离强得多。你在试着测量什么,它是否真的足够强大,在你想要测量的距离上移动指南针?
https://stackoverflow.com/questions/36000659
复制相似问题