Android はじめました。(1) - 搭載センサーを取得してみる

Softbank Desire を予約するも、まだ入荷せず。5月末には入荷するのかな~?久々に物欲がわいてます。

Windows Phone 7 もちょっと興味を持ったけど、Android 見れば見るほど面白そうだ。

実機入手までに、ちょっとずつ準備をしていこう。

android_sensor01

センサーを使ったアプリケーションが非常に面白そうにおもっているので、まずは搭載センサーを取得してみる(エミュレータ上で・・・)

加速度センサーが取得できた。

SensorListActivity

  1. package info.typea.sensorlist;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import android.app.ListActivity;
  7. import android.hardware.Sensor;
  8. import android.hardware.SensorManager;
  9. import android.os.Bundle;
  10. import android.widget.ArrayAdapter;
  11.  
  12. public class SensorListActivity extends ListActivity {
  13. /** Called when the activity is first created. */
  14. @Override
  15. public void onCreate(Bundle savedInstanceState) {
  16. super.onCreate(savedInstanceState);
  17. setContentView(R.layout.main);
  18. // センサーマネージャーは、Context経由で取得するようだ
  19. SensorManager sensorManager = (SensorManager)this.getSystemService(SENSOR_SERVICE);
  20. // Sensor.TYPE_ALL を指定し有効なセンサーをすべて取得
  21. List sensors = sensorManager.getSensorList(Sensor.TYPE_ALL);
  22. // ListView に表示させるため、センサーの名称でリストを作成し直す
  23. List sensorNames = new ArrayList();
  24. for (Sensor sensor : sensors) {
  25. sensorNames.add(sensor.getName());
  26. }
  27. ArrayAdapter lstAdapter
  28. = new ArrayAdapter(this, R.layout.sensor_row, sensorNames);
  29. setListAdapter(lstAdapter);
  30. }
  31. }

res/layout/main.xml

  1. <?xml version="1.0" encoding="utf-8"?>

  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

  3.     android:orientation="vertical"

  4.     android:layout_width="fill_parent"

  5.     android:layout_height="fill_parent"

  6.     >

  7.     <ListView android:id="@+id/android:list"

  8.           android:layout_width="wrap_content"

  9.           android:layout_height="wrap_content"/>

  10.       <TextView android:id="@+id/android:empty"

  11.           android:layout_width="wrap_content"

  12.           android:layout_height="wrap_content"

  13.           android:text="No Sensors!"/>

  14. </LinearLayout>

res/layout/sensor_row.xml

  1. <?xml version="1.0" encoding="utf-8"?>

  2. <TextView android:id="@+id/text1" xmlns:android="http://schemas.android.com/apk/res/android"

  3.     android:layout_width="wrap_content"

  4.     android:layout_height="wrap_content"/>

いじょ。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です