传感器学习案例 之 公交防盗
来源:互联网 发布:js注册界面源代码 编辑:程序博客网 时间:2024/04/28 06:46
需求 :当手机从衣服兜里被掏出时,手机响铃报警。
原理 : 使用距离传感器,当距离从 0 变为 1 时,使用 MediaPlayer 播放声音文件报警
步骤 :
1. 设置布局文件 : 添加一个报警按钮开关,用于开启/停止报警功能
2. 声明成员变量
// 声明 Button 变量private Button bt;// 声明传感器管理器private SensorManager sm;// 声明 MediaPlayerprivate MediaPlayer player;// 声明一个传感器对象private Sensor sensor;// 标记当前防盗功能是否开启private boolean isOpen = false;
3、 使用当前继承 SensorEventListener 并复写抽象方法
@Overridepublic void onSensorChanged(SensorEvent event) { // 获取距离传感器的值 float value = event.values[0]; if (value > 0) { try { // 如果距离大于 0 则播放音乐 player.start(); } catch (Exception e) { e.printStackTrace(); } } else { // 如果距离等于 0 暂停音乐 player.pause(); } }@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {}
4、实现Button的按钮事件 ,点击开启或者关闭音乐
public void click(View view) { if (isOpen) {// 如果开启 // 暂停音乐 player.pause(); // 使按钮显示提示文字 bt.setText("防盗已经关闭"); // 取消传感器监听 sm.unregisterListener(this); isOpen = false; } else {// 如果没有开启 // 播放音乐 player.start(); bt.setText("防盗已经开启"); // 注册传感器监听 sm.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL); isOpen = true; }}
5、 复写Activity 的onCreate 方法,在该方法里面实现 MediaPlayer的初始化以及传感器的监听
protected void onCreate (Bundle savedInstanceSate){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化变量 bt = (Button)findViewById(R.id.bt); sm = (SensorManager) getSystemService(SENSOR_SERVICE); //获取距离传感器 sensor = sm.getDefaultSensor(Sensor.TYPE_PROXIMITY); //创建MediaPlayer对象 player = MediaPlayer.create(this,R.raw.apple); //给MediaPlayer 设置播放完事事件监听 player.setOnCompletionListener(new OnCompletionListener(){ @Override public void onCompletion(MediaPlayer mp){ //播放完后重新播放 mp.start(); } });}
0 0
- 传感器学习案例 之 公交防盗
- android传感器学习之获取手机传感器
- android传感器学习之获取手机传感器
- 2.传感器学习笔记之光照传感器
- Python学习之提取8684公交数据
- Android学习笔记之传感器
- android传感器学习之获取传感器的值
- Android传感器学习之加速度传感器数据获取
- 公交买票之迭代器模式学习笔记[C++版]
- 公交买票之迭代器模式学习笔记[C++版]
- 案例:开发防盗链标签
- 传感器之光照传感器
- 传感器之加速传感器
- Android方向传感器学习之指南针示例
- android传感器学习之采样率和属性
- Android学习之手机传感器的获取
- 1.传感器学习笔记之初次相识
- MetaWear传感器学习之路(一)
- 几种常见的网络摄像头_DVR方案_整理
- 集合的位图表示(C语言描述)
- How to use pylab to plot figure()?
- Android拷贝工程不覆盖原工程的配置方法
- CodeBlocks集成Objective-C开发
- 传感器学习案例 之 公交防盗
- no installed service named "apache2"
- poj3311 Hie with the Pie
- java基础第三天
- 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ...
- s3c2440裸板程序四个led轮流灭
- 不兼容结构的协调——适配器模式(三)
- 获取一个想要的指定文件的集合,获取文件夹下(包含子目录的所有.java的文件对象,并存储到集合中)
- jquery 对 Json 的各种遍历