№6: Работа с мобильными датчиками


public void onSensorChanged


Download 22.02 Kb.
bet3/3
Sana30.04.2023
Hajmi22.02 Kb.
#1408883
1   2   3
Bog'liq
datchik

public void onSensorChanged(SensorEvent event) { //Изменение показаний датчиков }

Как вы уже наверное догадались, нас вскоре заинтересует последний метод. А пока объявим необходимые нам переменные:
private SensorManager mSensorManager;
private Sensor mOrientation;
private float xy_angle;
private float xz_angle;
private float zy_angle;


private TextView xyView;
private TextView xzView;
private TextView zyView;

Первая переменная — менеджер сенсоров устройства. Именно она даст нам доступ к интересующему нас датчику. Для этого событие onCreate сделаем похожим на это:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); // Получаем менеджер сенсоров


mOrientation = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION); // Получаем датчик положения
xyView = (TextView) findViewById(R.id.xyValue); //
xzView = (TextView) findViewById(R.id.xzValue); // Наши текстовые поля для вывода показаний
zyView = (TextView) findViewById(R.id.zyValue); //
}

Ну вот, почти закончили! Осталось только получить значения и вывести в текстовые поля. Вспомним про событие onSensorChanged. Если помните в него передается параметр SensorEvent event. Он-то и содержит значения углов наклона в градусах. Поэтому делаем финальный штрих и приводим событие к виду:


public void onSensorChanged(SensorEvent event) {
xy_angle = event.values[0]; //Плоскость XY
xz_angle = event.values[1]; //Плоскость XZ
zy_angle = event.values[2]; //Плоскость ZY
xyView.setText(String.valueOf(xy_angle));
xzView.setText(String.valueOf(xz_angle));
zyView.setText(String.valueOf(zy_angle));
}

Все готово! Думаю, понятно, что виртуальный смартфон вы повертеть не сможете. Поэтому для тестирования вам понадобится реальный аппарат. Запускаем, вертим наш смартфон и следим за цифрами.

Если кому-то понадобится, то выкладываю apk сделаный по примеру.
Download 22.02 Kb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling