№6: Работа с мобильными датчиками
public void onSensorChanged
Download 22.02 Kb.
|
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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling