다음은 어떤 조건에 해당 될 때 내 안드로이드 휴대 전화를 진동시키기위한 코드입니다. 방위각 (자력계로부터 얻는)이 주어진 범위 내에 있지 않을 때까지 진동해야합니다.안드로이드 모바일의 자력계 센서로 방향을 얻으십시오
하지만 휴대 전화를 가리키는 방향에 상관없이 결코 진동하지 않습니다. if
문을 입력하지만 while
문은 입력하지 않습니다. 진동 기능이 작동 중입니다 (예 : 휴대 전화가 고장났습니다). 내 목적은 남동쪽 서쪽 북쪽을 찾는 것입니다.
내가 뭘 잘못하고 있니?
public void onCreate(Bundle savedInstanceState) {
// some code
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
if (mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD) != null){
// Success! There's a magnetometer.
Toast.makeText(
getApplicationContext(),
"Detecting magnetic field",
Toast.LENGTH_LONG).show();
speakOut("not Working");
}
else {
Toast.makeText(
getApplicationContext(),
"not working",
Toast.LENGTH_LONG).show();
speakOut("not Working");
}
// some code that calls the function
}
some_function(){
if (//some condition) {
while (!(85 < azimuth_angle) && !(azimuth_angle < 95)) {
viberator.vibrate(1000);
//this should happen when it faces east.
}
}
}
public void onSensorChanged(SensorEvent event) {
// TODO: Auto-generated method stub
azimuth_angle = event.values[0];
pitch_angle = event.values[1];
roll_angle = event.values[2];
}