资讯详情

Android传感器

大多数Android内置传感器用于测量运动、方向和各种环境条件。Android平台支持三类传感器。

运动传感器

环境传感器

位置传感器

有些传感器是基于硬件的,有些是基于软件的。不管传感器是什么,android允许我们从这些传感器中获取原始数据,并在我们的应用程序中使用它们。android,我们提供了一些类别。

Android提供SensorManager和Sensor类,以便在我们的应用程序中使用传感器。为了使用传感器,你需要做的第一件事实例化SensorManager类对象。可实现如下。

SensorManager sMgr;

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

你需要做的是调用SensorManager类的getDefaultSensor()实例化方法Sensor类对象。语法如下:

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);Listlist=sMgr.getSensorList(Sensor.TYPE_ALL);for(Sensorsensor:list){}

除此之外,还有其他方法可以管理传感器框架SensorManager类提供的方法如下:

没有

方法和描述

1

getDefaultSensor(int type)

该方法获取给定类型的默认传感器。

2

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

该方法返回剪贴板上当前主剪辑的描述,但不返回数据副本。

3

getInclination(float [] I)

该方法从倾斜矩阵弧度的地磁倾角计算。

4

registerListener(SensorListener listener,int sensors,int rate)

该方法注册了传感器监听器

5

unregisterListener(SensorEventListener侦听器,传感器传感器)

该方法取消了注册传感器的侦听器。

6

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

该方法基于旋转矩阵计算设备的方向。

7

getAltitude(float p0,float p)

该方法计算海拔高度(以米为单位)、大气压力和海平面压力。

以下是演示使用SensorManager类的例子。它创建了允许您查看设备上传感器列表的基本应用程序。

要实验这个例子,您可以在实际设备或模拟器中操作这个例子。

脚步

描述

1

您将使用Android Studio在一个包com.example.sairamkrishna.myapplication下创建一个Android应用程序。

2

修改src / MainActivity.java添加必要代码的文件。

3

修改res / layout / activity_main添加相应的XML组件。

4

运行应用程序并选择正在运行的应用程序Android并在其上安装应用程序,验证结果。

以下是修改MainActivity.java的内容。

packagecom.example.sairamkrishna.myapplication;importandroid.app.Activity;importandroid.hardware.SensorManager;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.Menu;importandroid.view.MenuItem;importandroid.view.View;importandroid.widget.TextView;importjava.util.List;importandroid.hardware.Sensor;importandroid.hardware.SensorManager;publicclassMainActivityextendsActivity{TextViewtv1=null;privateSensorManagermSensorManager;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv1=(TextView)findViewById(R.id.textView2);tv1.setVisibility(View.GONE);mSensorManager=(SensorManager)getSystemService(SENSOR_SERVICE);ListmList=mSensorManager.getSensorList(Sensor.TYPE_ALL);for(inti=1;i

" mList.get(i).getName() "

" mList.get(i).getVendor() "

" mList.get(i).getVersion();@OverridepublicbooleanonCreateOptionsMenu(Menumenu){// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.menu_main,menu);returntrue;}@OverridepublicbooleanonOptionsItemSelected(MenuItemitem){// 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.intid=item.getItemId();//noinspection SimplifiableIfStatementif(id==R.id.action_settings){returntrue;}returnsuper.onOptionsItemSelected(item);}}

以下是xmlactivity_main.xml修改内容。

在下面的代码中,abc表示vue5.com的标志

以下是res / values / string.xml的内容。

My ApplicationHello world!Settings

以下是AndroidManifest.xml文件的内容。

我们试图操作我们刚刚修改的应用程序。假设你在设置环境时创建了它AVD。要从Android studio运行应用程序时,请打开项目活动文件

b1a3db295c288c734ff60c38452c67a7.png单击工具栏中的运行图标。Android工作室在你的AVD安装应用程序并启动它。如果您的设置和应用程序正常,它将显示以下模拟器窗口 -

现在,如果您将看到设备屏幕,您将看到设备支持的传感器列表、名称、版本和其他信息。

由于输出取决于设备支持的传感器数量,因此,如果您在不同的设备上运行此应用程序,输出将会有所不同。

标签: 内置传感器类型android设备传感器相关android传感器类型3os5015传感器a用在设备的传感器up6传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台