LoginSignup
3
2

More than 5 years have passed since last update.

Androidの近接センサーアプリを作ってみました

Posted at

前書き

趣味でAndroidアプリを開発しているものです!ハーフミラーディスプレーを作ろうと、近接センサーのアプリを開発して見ました。軽く便利なショートカットを書きつづ、近接センサーアプリの開発についてを議事録として残します。

開発環境

開発環境
* Android Studio 2.2.3
* Mac OSX Sierra

デバッグに使った実機
* Xperia(TM) ZL2 SOL25
* Android 5.0 lollipop

Android Studioの便利なショートカット

ラブラリーをインポート - alt + Enter

12月-30-2016 19-09-52.gif

interfaceのabstractメソッドを自動追加 - Cmd + N でcode generateのメニューが開き、そのままiを打つと、implement methodsが絞られて↓キー移動しなくてもすぐ選択できます。

12月-30-2016 19-12-28.gif

近接センサーのコード

public class MainActivity extends AppCompatActivity implements SensorEventListener {

    private SensorManager mSensorManager;
    private Sensor mProximity;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // センサーオブジェクトを取得
        mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

        // 近接センサーのオブジェクトを取得
        mProximity = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);

    }

    @Override
    protected void onResume() {
        super.onResume();
     // 近接センサーを有効
        mSensorManager.registerListener(this, mProximity, SensorManager.SENSOR_DELAY_NORMAL);
    }

    @Override
    protected void onPause() {
        super.onPause();
        // 近接センサーを無効
        mSensorManager.unregisterListener(this);
    }

    @Override
    public void onSensorChanged(SensorEvent event) {
        if (event.sensor.getType() == Sensor.TYPE_PROXIMITY) {
            // values = 5 or 0
            if (event.values[0] > 0 ) {
                //near
                Toast.makeText(getApplicationContext(), "far", Toast.LENGTH_SHORT).show();
            } else {
                //far
                Toast.makeText(getApplicationContext(), "near", Toast.LENGTH_SHORT).show();
            }
        }
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {

    }
}

Githubにまとめました。
https://github.com/edisonthk/ProximitySensorTest

余談

Eclipseを使ってAndroid開発していた2年前のごろは Java Development Kit(以降、JDK)のインストールは必須でしたが、Android StudioはJDKなくても開発できました。ただし、 react nativeを使うと JDK のインストールは必須になります。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2