zoukankan      html  css  js  c++  java
  • Android_通过传感器抓小偷

    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;
    	
    	@Override
    	protected 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{
    		@Override
    		public void onSensorChanged(SensorEvent event) {
    			float distance=event.values[0];
    			//System.out.println(val[0]);
    			Toast.makeText(MainActivity.this, ""+distance, 0).show();
    			//当手机在裤袋里面时,距离为0
    			if (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();
    		}
    		@Override
    		public void onAccuracyChanged(Sensor sensor, int accuracy) {	
    		}
    		
    	}
    }

  • 相关阅读:
    在返回值拒绝——reference
    传参时,使用引用替换变量
    C++设计与声明——让接口容易被正确使用
    三角函数的天下
    渲染流水线
    设置Shader关键字高亮(网上转)
    平衡二叉树,AVL树之代码篇
    2017-2018-1 20155205 嵌入式C语言——时钟
    GDB基础学习
    20155205 《信息安全系统设计基础》课程总结
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4025053.html
Copyright © 2011-2022 走看看