標籤:android blog io os ar java div 2014 art
package com.beyond.phonestolen;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.SensorManager;import android.media.AudioManager;import android.media.MediaPlayer;import android.os.Bundle;import android.app.Activity;import android.widget.Toast;public class MainActivity extends Activity {//感應器管理器private SensorManager sm;//距離感應器private Sensor sensor;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//1,通過擷取系統服務,得到感應器管理器sm=(SensorManager) getSystemService(SENSOR_SERVICE);//2,通過感應器管理器擷取指定的距離感應器sensor=sm.getDefaultSensor(Sensor.TYPE_PROXIMITY);//3,通過感應器管理器注冊監聽器,監聽距離感應器的感應事件sm.registerListener(new MyListener(), sensor, SensorManager.SENSOR_DELAY_GAME);}private class MyListener implements SensorEventListener{@Overridepublic void onSensorChanged(SensorEvent event) {float distance=event.values[0];//System.out.println(val[0]);Toast.makeText(MainActivity.this, ""+distance, 0).show();//當手機在褲袋裡面時,距離為0if (distance<1.0f) {return;}//當手機脫離褲袋的時候,距離為1,播放音樂playMusic();}private void playMusic() {// 播放音樂MediaPlayer mPlayer=MediaPlayer.create(MainActivity.this, R.drawable.alarm);mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);try {mPlayer.prepare();} catch (Exception e) {e.printStackTrace();}//理論上應該非同步準備,在準備完畢的回呼函數中啟動播放器mPlayer.start();}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {}}}
Android_通過感應器抓小偷