在过去的几天里,我一直在研究小型指南针应用程序,并且已经启动并运行了代码,但似乎指南针读数不准确.在校准了两部手机之后,我第一次测试了我发现这个,我只是把手机靠在平面上,看着读数然后水平翻转并将它放在同一平面上(180转)并且值得做不改变180*它接近240*.
然后我测试了读数与指南针,有时读数似乎接近,但在其他点,它超过50*关闭.我甚至试图将我的手机和指南针放在地板上以保持指南针远离任何磁干扰同样的结果(注意我也保持指南针和手机分开,通过排列书的边缘使它们保持在同一方向) .
然后我将示例应用程序放在另一部手机上(首先是nexus S,第二个是Motorola droid 1).在两部手机之间,差异的范围是在某些点相等,但最多的点在50到15度之间.
我查看了文档,还浏览了许多不同的论坛帖子,我没有看到任何人有相同的结果.我的代码中可能存在一些小错误,导致我的读数错误地出现,或者一些我没有看到的记录错误.
任何见解或建议将不胜感激!!
继承传感器,我在SensorEventListener类中更改了代码
public void onSensorChanged(SensorEvent event)
{
// If the sensor data is unreliable return
if (event.accuracy == SensorManager.SENSOR_STATUS_UNRELIABLE)
{
Toast.makeText(main.this, "Sensor Status Unreliable",Toast.LENGTH_SHORT).show();
}
// Gets the value of the sensor that has been changed
switch (event.sensor.getType())
{
case Sensor.TYPE_ACCELEROMETER:
m_vfgravity = event.values.clone();
break;
case Sensor.TYPE_MAGNETIC_FIELD:
m_vfgeomag = event.values.clone();
break;
}
if (m_vfgravity != null && m_vfgeomag != null)
{
if(SensorManager.getRotationMatrix(m_vfinR, m_vfI, m_vfgravity, m_vfgeomag))
{
SensorManager.getOrientation(m_vfinR, m_vforientVals);
m_fCompBearing = (float) Math.round((Math.toDegrees(m_vforientVals[0])) …Run Code Online (Sandbox Code Playgroud) arch already exists in fat dylib尝试在应用程序代码中构建项目时,我收到以下错误很多次.该项目运行良好,然后突然出现这个错误.
我正在运行应用程序代码版本2.5.4.
我尝试重新启动应用程序代码,清理和重建,以及许多其他事情.
我在构建日志中看到了这个"arch已经存在于fat dylib中"的线程但是当我找不到它所说的Developer文件夹时,并且相信它已经在较新版本的应用程序代码中删除了.