您的位置:首页 > 移动开发 > Android开发

android传感器学习之获取手机传感器

2015-05-21 11:21 633 查看




在做手机开发的时候,我们有时会使用到传感器,特别是在游戏开发中。下面我没来学习一下传感器的获取。

在这里我们需要一部真实的android手机,我使用的是华为的c8650。

获取手机中的传感器的步骤为:

获取SensorManager对象
执行SensorManager对象的getDefaultSensor()方法获取Sensor对象,这里getDefaultSensor()方法要传递一个参数,指定具体的传感器类型
获取Sensor对象中的各种属性

不说那么多了,先截图看看我的运行效果吧:

界面:



点击按钮后得到数据:



xml布局代码:

[html]
view plaincopyprint?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<Button
android:id="@+id/btnGetSensor"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/btngetsensorstr"/>

</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<Button
android:id="@+id/btnGetSensor"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/btngetsensorstr"/>

</LinearLayout>


activity代码:

[java]
view plaincopyprint?

package com.nine.sensordemo;

import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity implements OnClickListener {

private Button btnGetSensor;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initWedget();
}

private void initWedget() {
btnGetSensor = (Button) findViewById(R.id.btnGetSensor);
btnGetSensor.setOnClickListener(this);
}

public void onClick(View v) {
SensorManager manager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
//得到手机上所有的传感器
List<Sensor> listSensor = manager.getSensorList(Sensor.TYPE_ALL);
int i = 1;
for (Sensor sensor : listSensor) {
Log.d("sensor " + i, sensor.getName());
i++;
}
//通过调用getDefaultSensor方法获取某一个类型的默认传感器
//Sensor s = manager.getDefaultSensor(Sensor.TYPE_LIGHT);
}
}

package com.nine.sensordemo;

import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity implements OnClickListener {

private Button btnGetSensor;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initWedget();
}

private void initWedget() {
btnGetSensor = (Button) findViewById(R.id.btnGetSensor);
btnGetSensor.setOnClickListener(this);
}

public void onClick(View v) {
SensorManager manager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
//得到手机上所有的传感器
List<Sensor> listSensor = manager.getSensorList(Sensor.TYPE_ALL);
int i = 1;
for (Sensor sensor : listSensor) {
Log.d("sensor " + i, sensor.getName());
i++;
}
//通过调用getDefaultSensor方法获取某一个类型的默认传感器
//Sensor s = manager.getDefaultSensor(Sensor.TYPE_LIGHT);
}
}


这里主要是获取手机的所有传感器,下一步是获取传感器中的数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: