Полезные примеры Android

Полезные примеры Android
Android — датчики

Большинство устройств Android имеют встроенные датчики, которые измеряют движение, ориентацию и различные условия окружающей среды. Платформа Android поддерживает три широкие категории датчиков.

  • Датчики движения
  • Датчики окружающей среды
  • Датчики положения

Некоторые из датчиков являются аппаратными, а некоторые — программными. Каким бы ни был датчик, Android позволяет нам получать необработанные данные с этих датчиков и использовать их в нашем приложении. Для этого Android предоставляет нам несколько классов.

Android предоставляет классы SensorManager и Sensor для использования датчиков в нашем приложении. Чтобы использовать датчики, первое, что вам нужно сделать, это создать экземпляр объекта класса SensorManager. Этого можно добиться следующим образом.

SensorManager sMgr;
sMgr = (SensorManager)this.getSystemService(SENSOR_SERVICE);

Следующее, что вам нужно сделать, это создать экземпляр объекта класса Sensor, вызвав метод getDefaultSensor () класса SensorManager. Его синтаксис приведен ниже —

Sensor light;
light = sMgr.getDefaultSensor(Sensor.TYPE_LIGHT);

После того, как этот датчик объявлен, вам необходимо зарегистрировать его слушателя и переопределить два метода: onAccuracyChanged и onSensorChanged. Его синтаксис следующий —

sMgr.registerListener(this, light,SensorManager.SENSOR_DELAY_NORMAL);
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
public void onSensorChanged(SensorEvent event) {
}

Получение списка поддерживаемых датчиков

Вы можете получить список датчиков, поддерживаемых вашим устройством, вызвав метод getSensorList, который вернет список датчиков, содержащий их имя, номер версии и многое другое. Затем вы можете перебирать список, чтобы получить информацию. Его синтаксис приведен ниже —

sMgr = (SensorManager)this.getSystemService(SENSOR_SERVICE);
List<Sensor> list = sMgr.getSensorList(Sensor.TYPE_ALL);
for(Sensor sensor: list){
}

Помимо этих методов, существуют другие методы, предоставляемые классом SensorManager для управления фреймворком датчиков. Эти методы перечислены ниже —

N Метод и описание
1

getDefaultSensor(int type)

Этот метод получает датчик по умолчанию для данного типа.

2

getInclination (float [] I)

Этот метод вычисляет угол геомагнитного наклона в радианах из матрицы наклона.

3

registerListener(SensorListener listener, int sensors, int rate)

Этот метод регистрирует слушателя для датчика

4

unregisterListener(SensorEventListener listener, Sensor sensor)

Этот метод отменяет регистрацию слушателя для датчиков, с которыми он зарегистрирован.

5

getOrientation(float[] R, float[] values)

Этот метод вычисляет ориентацию устройства на основе матрицы вращения.

6

getAltitude (float p0, float p)

Этот метод вычисляет высоту в метрах от атмосферного давления и давления на уровне моря.

Пример

Вот пример, демонстрирующий использование класса SensorManager. Он создает базовое приложение, которое позволяет просматривать список датчиков на вашем устройстве.

Чтобы поэкспериментировать с этим примером, вы можете запустить это на реальном устройстве или в эмуляторе.

Шаги Описание
1 Вы будете использовать Android studio для создания Android-приложения в пакете com.example.sairamkrishna.myapplication.
2 Измените файл src / MainActivity.java, чтобы добавить необходимый код.
3 Измените res / layout / activity_main, чтобы добавить соответствующие компоненты XML.
4 Запустите приложение, выберите работающее устройство Android, установите на него приложение и проверьте результаты.

Ниже приводится содержание измененного файла MainActivity.java .

package com.example.sairamkrishna.myapplication;
import android.app.Activity;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import java.util.List;
import android.hardware.Sensor;
import android.hardware.SensorManager;
public class MainActivity extends Activity {
TextView tv1=null;
private SensorManager mSensorManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv1 = (TextView) findViewById(R.id.textView2);
tv1.setVisibility(View.GONE);
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
List<Sensor> mList= mSensorManager.getSensorList(Sensor.TYPE_ALL);
for (int i = 1; i < mList.size(); i++) {
tv1.setVisibility(View.VISIBLE);
tv1.append("\n" + mList.get(i).getName() + "\n" + mList.get(i).getVendor() + "\n" + mList.get(i).getVersion());
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}

Ниже приводится измененное содержимое файла xml activity_main.xml .

В приведенном ниже коде abc указывается логотип tutorialspoint.com.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:transitionGroup="true">
<TextView android:text="Sensor " android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textview"
android:textSize="35dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tutorials point"
android:id="@+id/textView"
android:layout_below="@+id/textview"
android:layout_centerHorizontal="true"
android:textColor="#ff7aff24"
android:textSize="35dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:src="@drawable/abc"
android:layout_below="@+id/textView"
android:layout_centerHorizontal="true"
android:theme="@style/Base.TextAppearance.AppCompat" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/textView2"
android:layout_below="@+id/imageView"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
</RelativeLayout>

Ниже приводится содержимое файла res / values ​​/ string.xml .

<resources>
<string name="app_name">My Application</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
</resources>

Ниже приводится содержимое файла AndroidManifest.xml .

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sairamkrishna.myapplication" >
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

Попробуем запустить наше только что измененное приложение. Я предполагаю, что вы создали свой AVD при настройке среды. Чтобы запустить приложение из студии Android, откройте один из файлов активности вашего проекта и щелкните Значок запуска Eclipseзначок « Выполнить» на панели инструментов. Студия Android устанавливает приложение на ваш AVD и запускает его, и если все в порядке с вашей настройкой и приложением, оно отобразит следующее окно эмулятора —

Руководство по датчикам Anroid

Теперь, если вы посмотрите на экран своего устройства, вы увидите список датчиков, поддерживаемых вашим устройством, а также их имя, версию и другую информацию.

Если вы запустите это приложение на разных устройствах, результат будет другим, потому что он будет зависеть от количества датчиков, поддерживаемых вашим устройством.

Select the fields to be shown. Others will be hidden. Drag and drop to rearrange the order.
  • Image
  • SKU
  • Rating
  • Price
  • Stock
  • Availability
  • Add to cart
  • Description
  • Content
  • Weight
  • Dimensions
  • Additional information
  • Attributes
  • Custom attributes
  • Custom fields
Click outside to hide the compare bar
Compare