title: Compute rotation matrix using the magnetic field
body: <p>In get rotation matrix value it contains <code>public static boolean getRotationMatrix (float[] R, float[] I, float[] gravity, float[] geomagnetic)</code>
  Here how can i calculate the <code>float[] gravity</code>?
  I found a sample of code where it calculate the <code>orientation</code> using both <code>Accelerometer</code> and <code>Magnetic field</code></p>
  
  <pre><code>boolean success = SensorManager.getRotationMatrix(
     matrixR,
     matrixI,
     valuesAccelerometer,
     valuesMagneticField);
  
  if(success){
  SensorManager.getOrientation(matrixR, matrixValues);
  
  double azimuth = Math.toDegrees(matrixValues[0]);
  double pitch = Math.toDegrees(matrixValues[1]);
  double roll = Math.toDegrees(matrixValues[2]);
  
  readingAzimuth.setText("Azimuth: " + String.valueOf(azimuth));
  readingPitch.setText("Pitch: " + String.valueOf(pitch));
   readingRoll.setText("Roll: "+String.valueOf(roll));
  }
  </code></pre>
  
  <p>My questions are :</p>
  
  <ul>
  <li>Is orientation value is the rotation matrix value?</li>
  <li>If no then how can i implement this code to get the rotation matrix value using magnetic? field?</li>
  </ul>
  
  <p>To get the rotation matrix i use this code</p>
  
  <pre><code> public void onSensorChanged(SensorEvent sensorEvent) {
      if (timestamp != 0) {
          final double dT = (sensorEvent.timestamp - timestamp) * NS2S;
              double magneticX = sensorEvent.values[0];
              double magneticY = sensorEvent.values[1];
              double magneticZ = sensorEvent.values[2];
                          double omegaMagnitude =Math.sqrt(magneticX*magneticX + magneticY*magneticY + magneticZ*magneticZ);
  
                          if (omegaMagnitude &gt; EPSILON) {
                              magneticX /= omegaMagnitude;
                              magneticY /= omegaMagnitude;
                              magneticZ /= omegaMagnitude;
          }
                          double thetaOverTwo = omegaMagnitude * dT / 2.0f;
                          double sinThetaOverTwo =Math.sin(thetaOverTwo);
                          double cosThetaOverTwo = Math.cos(thetaOverTwo);
                          deltaRotationVector[0] = (double) (sinThetaOverTwo * magneticX);
                          deltaRotationVector[1] = (double) (sinThetaOverTwo * magneticY);
                          deltaRotationVector[2] = (double) (sinThetaOverTwo * magneticZ);
                          deltaRotationVector[3] = cosThetaOverTwo;
  
  
      }
       double[] deltaRotationMatrix = new double[9];
       SensorManager.getRotationMatrixFromVector(deltaRotationMatrix, deltaRotationVector);
  }
  </code></pre>
  
  <p>But the problem is this <code>getRotationMatrixFromVector</code> is says undefine for sensor.Any idea?</p>