Die meisten Android-Geräte haben eingebaute Sensoren, die Bewegung, die Ausrichtung und verschiedenen Umgebungsbedingungen zu messen. Die Android-Plattform unterstützt drei große Kategorien von Sensoren.
- Bewegungssensoren
- Umgebungssensoren
- Positionssensoren
Eines Teils der Sensoren sind Hardware-basierte und einige basieren auf Software-Sensoren. Was auch immer der Sensor, ermöglicht Android uns die Rohdaten von diesen Sensoren erhalten und verwenden Sie es in unserer Anwendung. Für diese Android bietet uns einige Klassen.
Android bietet Sensormanager und Sensor-Klassen, um die Sensoren in unserer Anwendung zu verwenden. Um Sensoren zu verwenden, ist erste, was Sie tun müssen, um das Ziel der Sensormanager Klasse zu instanziieren. Dabei kann wie folgt erreicht werden.
SensorManager sMgr; sMgr = (SensorManager)this.getSystemService(SENSOR_SERVICE);
Das nächste, was Sie tun müssen, ist, die Gegenstand der Sensor-Klasse durch Aufrufen der getDefaultSensor () -Methode des Sensormanager Klasse zu instanziieren. Die Syntax ist unten angegeben -
Sensor light; light = sMgr.getDefaultSensor(Sensor.TYPE_LIGHT);
Sobald das Sensor erklärt wird, müssen Sie seine Zuhörer zu registrieren und zu überschreiben zwei Methoden, die onAccuracyChanged werden und onSensorChanged. Die Syntax ist wie folgt -
sMgr.registerListener(this, light,SensorManager.SENSOR_DELAY_NORMAL); public void onAccuracyChanged(Sensor sensor, int accuracy) { } public void onSensorChanged(SensorEvent event) { }
Erste Liste der unterstützten Sensoren.
Sie können eine Liste der von Ihrem Gerät unterstützt Sensoren durch den Aufruf der getSensorList-Methode, die eine Liste von Sensoren, ihren Namen und Versionsnummer und viel mehr Informationen enthalten, zurück erhalten.Sie können dann durchlaufen Sie die Liste, um die Informationen zu erhalten.Die Syntax ist wie folgt:
sMgr = (SensorManager)this.getSystemService(SENSOR_SERVICE); List<Sensor> list = sMgr.getSensorList(Sensor.TYPE_ALL); for(Sensor sensor: list){ }
Abgesehen von den diesen Verfahren gibt es noch andere von der Sensormanager-Klasse zur Verwaltung von Sensoren Rahmen vorgesehenen Verfahren. Diese Methoden sind: -
Sr.No | Verfahren & Beschreibung |
---|---|
1 | getDefaultSensor (int-Typ)
Diese Methode erhalten Sie den Standardsensor für einen bestimmten Typ.
|
2 | GetOrientation (float [] R, float [] Werte)
Diese Methode liefert eine Beschreibung des aktuellen primären Clip auf die Zwischenablage, aber keine Kopie der Daten.
|
3 | getInclination (float [] I)
Diese Methode errechnet den geomagnetischen Neigungswinkel in rad aus der Neigung Matrix.
|
4 | registerListener (SensorListener Zuhörer, int Sensoren, int Rate)
Diese Methode registriert ein Listener für den Sensor
|
5 | unregisterListener (SensorEventListener Zuhörer, Sensor Sensor)
Diese Methode hebt die Registrierung eines Listeners für die Sensoren, mit denen er registriert ist.
|
6 | GetOrientation (float [] R, float [] Werte)
Dieses Verfahren berechnet die Ausrichtung des Geräts auf der Basis der Rotationsmatrix.
|
7 | getAltitude (float p0, float p)
Diese Methode berechnet die Höhe in Meter von der Atmosphärendruck und den Druck auf Meereshöhe.
|
Beispiel
Hier ist ein Beispiel demonstriert die Verwendung von Sensormanager-Klasse.Es schafft eine grundlegende Anwendung, die Sie der Liste der Sensoren auf dem Gerät anzeigen können.
Um bei diesem Beispiel zu experimentieren, können Sie dies auf einem Gerät oder einem Emulator laufen.
Schritte | Bezeichnung |
---|---|
1 | Sie werden Android-Studio verwenden, um ein Android-Anwendung unter einem Paket com.example.sairamkrishna.myapplication erstellen.Bei der Erstellung dieses Projekt, stellen Sie sicher SDK Ziel und Kompilieren Sie mit der neuesten Version des Android SDK zu höheren Ebenen der APIs verwenden. |
2 | Ändern src / MainActivity.java Datei an erforderlichen Code hinzuzufügen. |
3 | Ändern Sie die res / layout / activity_main zum jeweiligen XML-Komponenten hinzuzufügen. |
4 | Führen Sie die Anwendung, und wählen Sie einen laufenden Android-Gerät und installieren Sie die Anwendung und überprüfen Sie die Ergebnisse. |
Im Anschluss ist der Gehalt des modifizierten 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); } }
Im Anschluss wird der modifizierte Inhalt der XML activity_main.xml.
<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>
Hier finden Sie den Inhalt der res / Werte / string.xml.
<resources> <string name="app_name">My Application</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> </resources>
Im Anschluss ist der Inhalt der AndroidManifest.xml Datei.
<?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>
Lassen Sie uns versuchen, unsere Anwendung, die wir gerade geändert laufen.Ich nehme an, Sie geschaffen hatte AVD dabei Umgebungskonfiguration. Um die App vom Android-Studio, öffnen Sie eine der Aktivität Dateien Ihres Projekt auszuführen, und klicken Sie auf
Ausführen-Symbol in der Symbolleiste.Android-Studio installiert die App auf Ihrem AVD und startet es und wenn alles in Ordnung ist mit der Einrichtung und Anwendung, wird es folgende Emulator-Fenster anzuzeigen -
Nun, wenn Sie bei Ihrem Gerät Bildschirm schauen, sehen Sie, die Liste der von Ihrem Gerät zusammen mit ihren Namen und die Version und andere Informationen unterstützt Sensoren.
Wenn Sie diese Anwendung auf verschiedenen Geräten laufen würde, würde der Ausgang anders sein, da der Ausgang hängt von der Anzahl der von Ihrem Gerät unterstützt Sensoren.
0 التعليقات:
Kommentar veröffentlichen