(注意模式器沒有sensor,所以在真機上運行)
1,獲得實例;SensorManager,
2,調用SensorManager類的方法,可以得到Sensor
3,調用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);
}
});
}
}
佈局文件:
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="查看手機傳感器"
/>
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="傳感器監聽"
/>
<Button
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="取消傳感器監聽"
/>
<TextView
android:id="@+id/tx_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:lines="10"
/>
<TextView
android:id="@+id/tx_view1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:lines="10"
/>