का अजीब व्यवहार मुझे अपने फोन का अभिविन्यास पुनर्प्राप्त करने की आवश्यकता है।एंड्रॉइड - सेंसर मैनेजर getOrientation
public void onSensorChanged(SensorEvent event) {
switch (event.sensor.getType()){
case Sensor.TYPE_MAGNETIC_FIELD:
this.mag_vals = event.values.clone();
this.sensorReady = true;
break;
case Sensor.TYPE_ACCELEROMETER:
this.acc_vals = event.values.clone();
break;
}
if (this.mag_vals != null && this.acc_vals != null && this.sensorReady) {
this.sensorReady = false;
float[] R = new float[ProjectConstants.SIZE_MATRIX];
float[] I = new float[ProjectConstants.SIZE_MATRIX];
SensorManager.getRotationMatrix(R, I, this.acc_vals, this.mag_vals);
SensorManager.getOrientation(R, this.actual_orientation);
...
इस कोड को अगर मैं एक सपाट सतह पर फोन छोड़ दो और मैं सतह पर यह बारी बारी से मेरे फोन के उन्मुखीकरण पाने के लिए अनुमति देता है: इस समय मैं इस लिखा था।
मुझे समझ में नहीं आया कि क्यों मैं फोन को this.actual_orientation[0]
के मान को ऊपर ले जाता हूं, जो ज़ेड अक्ष पर घूर्णन है [यहां] [1], मान बढ़ता है हालांकि कोई रोटेशन नहीं था।
क्या किसी को पता था कि क्या होता है?
संपादित
एक और अजीब बात ..
मैं काम पर कार्यालय में अपने आवेदन की कोशिश की और यह अजीब व्यवहार मैं पहले वर्णित .. मैं एक ही कार्यालय में करने की कोशिश की (एक ही स्थिति थी) एक कंपास ऐप जिसे मैंने बाजार से लिया था और इसमें मेरा वही व्यवहार है..जब मैंने फ़ोन को ऊपर की तरफ ले जाया तो मूल्य लगातार बदल गया .. मैंने उसी कार्यालय (उसी स्थिति) में आई-फोन कंपास और इसे करने की कोशिश की उस अजीब व्यवहार नहीं था!
फिर जब मैं घर पर पहुंचे मैं करने की कोशिश की दोनों, अपने आवेदन अपने Android फ़ोन की कम्पास अनुप्रयोग, और वे !! काम किया है, भले ही मैं ऊपर की तरफ फोन मूल्य स्थिर रहे हैं के लिए कदम ...
धन्यवाद एक बहुत।
[1]: http://developer.android.com/reference/android/hardware/SensorManager.html#getOrientation(float[], [] फ्लोट)