문제

PhoneGap을 사용하여 하이브리드 앱을 개발했습니다.

PhoneGap API 및 기본 코드에서 나침반 기능을 사용합니다.

문제가 있습니다.

내 테스트 장치 (Galaxy Note 1, Galaxys3 등 ...)는 동일한 방향을 나타내지 않습니다.

내 PhoneGap 소스는 ...

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
        startWatch();
    }

function startWatch() {

        // Update compass every 3 seconds
        var options = { frequency: 1000 };

        watchID = navigator.compass.watchHeading(onSuccess, onError, options);
    }

function onSuccess(heading) {
        var element = document.getElementById('heading');
        var deg = heading.magneticHeading;
        element.innerHTML = 'Heading: ' + deg + '<br>';        
    }
.

참조 PhoneGap API.

내 원주민은 ...

float[] mGravity;
float[] mGeomagnetic;

public void onSensorChanged(SensorEvent event) {
    if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER)
        mGravity = event.values.clone();
    if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD)
        mGeomagnetic = event.values.clone();
    if (mGravity != null && mGeomagnetic != null) {
        float R[] = new float[9];
        float I[] = new float[9];
        boolean success = SensorManager.getRotationMatrix(R, I, mGravity,     mGeomagnetic);
        if (success) {
        float orientation[] = new float[3];
            SensorManager.getOrientation(R, orientation);
            azimut = (float)Math.toDegrees(orientation[0]);

            //for (-180 to 180), (-10 to 350) 
            if(azimut<0)
                azimut = azimut+360;                            Log.d("azimut",""+azimut);

            // orientation contains: azimut, pitch and roll
            Matrix matrix=new Matrix();
            imgView.setScaleType(ScaleType.MATRIX);   //required
            matrix.postRotate(360-azimut+angle, imgView.getWidth()/2,     imgView.getHeight()/2);
            imgView.setImageMatrix(matrix);

        }
    }
}
.

Google 개발자를 참조하십시오.

왜 내 장치가 동일한 방향을 표시 할 수 없습니까?

도움이 되었습니까?

해결책

귀하의 의견을 고려하면 귀하의 코드가 아닌 귀하의 나침반이 아니라, 대답은 나침반을 재조정하는 것입니다.링크 된 지침을 참조하십시오 : http:///forum.xda-developers.com/showthread.php?t=1778131.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top