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

Android Sensor的使用

2014-10-20 20:31 113 查看
(注意模式器没有sensor,所以在真机上运行)1,获得实例;SensorManager,2,调用SensorManager类的方法,可以得到Sensor3,调用Sensor 的方法,得到Sensor相关的信息下面例子:
</pre><pre name="code" class="html"><pre name="code" class="html">public class MainActivity extends Activity {
private SensorManager sm;
private Button button1,button2,button3;
private TextView tx_view,tx_view1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

tx_view=(TextView) findViewById(R.id.tx_view);
tx_view1=(TextView) findViewById(R.id.tx_view1);
button1=(Button) findViewById(R.id.button1);

//1,获得实例;SensorManager,
sm=(SensorManager) getSystemService(SENSOR_SERVICE);

button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {

//2,调用SensorManager类的方法,可以得到Sensor,这个类型你可以自己指定这里写all,(你也可以获得指定类型传感器:Sensor sensor=sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
List<Sensor> sensors=sm.getSensorList(Sensor.TYPE_ALL);

tx_view.setText("总共有:"+sensors.size()+"个传感器。\n"+sensor_name1+sensor_name2+sensor_name3+sensor_name4+sensor_name5);

//我手机有1,2,3,5,8这几种类型
for(Sensor s:sensors)
{
System.out.println(s.getType());
}
Toast.makeText(MainActivity.this,"总共有:"+sensors.size()+"个传感器。", 0).show();

}
});

//你也可以微传感器设置监听事件,这一以加速度为例,单击 :按钮2,可以实现加速度。
//(按钮2你也可以不写,不会影响程序运行)
//传感器监听器
final Sensor sensor=sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
final SensorEventListener sensorListener=new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
String x="加速度x:"+event.values[0]+"\n";
String y="加速度y:"+event.values[1]+"\n";
String z="加速度z:"+event.values[2]+"\n";
tx_view1.setText(x+y+z);
}

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
};

button2.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

//注册传感器监听
sm.registerListener(sensorListener, sensor,SensorManager.SENSOR_DELAY_NORMAL);
}
});
//取消监听
button3.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

//注册传感器监听
sm.unregisterListener(sensorListener, sensor);
}
});
}
}
布局文件:
<Buttonandroid:id="@+id/button1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="查看手机传感器"/><Buttonandroid:id="@+id/button2"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="传感器监听"/><Buttonandroid:id="@+id/button3"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="取消传感器监听"/><TextViewandroid:id="@+id/tx_view"android:layout_width="match_parent"android:layout_height="wrap_content"android:lines="10"/><TextViewandroid:id="@+id/tx_view1"android:layout_width="match_parent"android:layout_height="wrap_content"android:lines="10"/>

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: