android 传感器使用方法,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上安装应用程序并启动它,如果您的设置和应用程序一切正常,它将显示以下仿真器窗口 -

f8976d1930068c4aeeb1510699759a2d.png

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值