2014-01-16 3 views
0

나는 완전히 빠졌습니다! 나에게이 코드는 완벽하다 ...하지만 슬프게도 System.out이 없다!Android Sensor가 갑자기 작동하지 않습니다.

그리고 그래, 내가 가속도계 :

public class MainActivity extends Activity implements SensorEventListener 
{ 
private final static String CLASS_NAME = "(MainActivity)"; 
private SensorManager m_oSensorManager; 
private Sensor m_oAccelerometer; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    m_oSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 

    m_oAccelerometer = m_oSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 

    m_oSensorManager.registerListener(this, m_oAccelerometer,SensorManager.SENSOR_DELAY_NORMAL); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

@Override 
public void onAccuracyChanged(Sensor arg0, int arg1) { 

} 

@Override 
public void onSensorChanged(SensorEvent arg0) { 
    System.out.println(CLASS_NAME + " onSensorChanged()"); 
} 

} 

은 스택 오버플로 필터를 방지 ..... 이러한 라인을 무시 있나요 .....

+1

저는 꽤 확신합니다 system.out.println은 안드로이드에서 작동하지 않습니다 ... 아니면 적어도 항상 [항상] (http://stackoverflow.com/questions/) 2220547/why-doesnt-system-out-println-work-in-android)를 사용하십시오. 'Log'로 해봤습니까? –

답변

1

시도 핸들러 레지스터 호출은 onResume()에 있어야합니다. 나는 그것을 시도 했으므로 내 전화기가 엉망이거나 내 두뇌라고 확신한다. 하지만 어쨌든, 다른 사람들을 위해 ...

@Override 
public void onResume() 
{ 
    super.onResume(); 
    m_oSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 
    m_oAccelerometer = m_oSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 
    m_oMagnetometer = m_oSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD); 

    m_oSensorManager.registerListener(this, m_oAccelerometer,SensorManager.SENSOR_DELAY_NORMAL); 
    m_oSensorManager.registerListener(this, m_oMagnetometer,SensorManager.SENSOR_DELAY_NORMAL); 
} 

@Override 
public void onPause() 
{ 
    super.onPause(); 
    m_oSensorManager.unregisterListener(this); 
} 
2

Log.i(CLASS_NAME, "onSensorChanged()");