代码片段,双击复制
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 package com.example.magnetic_field_sensor; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.app.Activity; import android.view.Menu; import android.widget.TextView; import android.widget.Toast; /** * 磁场传感器 * * @author pengxiaolong * */ public class MainActivity extends Activity { SensorManager sensorManager; //管理器对象 Sensor magneticSensor; //传感器对象 TextView tv_X; TextView tv_Y; TextView tv_Z; TextView tv_info; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); View_init(); projectinit(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true ; } /** * 对象的初始化 */ private void projectinit(){ sensorManager=(SensorManager) getSystemService(SENSOR_SERVICE); magneticSensor=sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD); if (magneticSensor== null ){ Toast.makeText( this , "您的设备不支持该功能!" , 0 ).show(); } else { String str= "\n名字:" +magneticSensor.getName()+ "\n电池:" +magneticSensor.getPower()+ "\n类型:" +magneticSensor.getType()+ "\nVendor:" +magneticSensor.getVendor()+ "\n版本:" +magneticSensor.getVersion()+ "\n幅度:" +magneticSensor.getMaximumRange(); tv_info.setText(str); } /** * 注册监听器 */ sensorManager.registerListener(sensoreventlistener, magneticSensor, SensorManager.SENSOR_DELAY_NORMAL); } /** * 小组件的初始化 */ private void View_init(){ tv_info=(TextView) this .findViewById(R.id.info); tv_X=(TextView) this .findViewById(R.id.tvX); tv_Y=(TextView) this .findViewById(R.id.tvY); tv_Z=(TextView) this .findViewById(R.id.tvZ); } @Override protected void onDestroy() { // TODO Auto-generated method stub super .onDestroy(); /** * 解除注册 */ sensorManager.unregisterListener(sensoreventlistener); } private Handler handler= new Handler(){ @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub switch (msg.what){ case CHANGE: float [] valuse=( float []) msg.obj; tv_X.setText( "X轴方向的磁场为:" +Float.toString(valuse[ 0 ])); tv_Y.setText( "Y轴方向的磁场为:" +Float.toString(valuse[ 1 ])); tv_Z.setText( "Z轴方向的磁场为:" +Float.toString(valuse[ 2 ])); break ; } super .handleMessage(msg); } }; /** * 传感器的监听 */ private SensorEventListener sensoreventlistener= new SensorEventListener() { @Override public void onSensorChanged(SensorEvent event) { // TODO Auto-generated method stub float [] valuse=event.values; Message message= new Message(); message.obj=valuse; message.what=CHANGE; handler.sendMessage(message); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // TODO Auto-generated method stub } }; private static final byte CHANGE= 0x1 ; }

更多相关文章

  1. Android(安卓)Light Sensor
  2. 收藏-------Android应用程序组件Content Provider在应用程序之间
  3. Android插件化原理解析——Hook机制之动态代理
  4. Android(安卓)IOS WebRTC 音视频开发总结(十二)-- sufaceview
  5. (一)基于android平台的智能家居控制系统之 android客户端篇
  6. 《第一行代码--Android》读书笔记之数据存储
  7. 转载:Android获取其他包的Context和在任意位置获取应用程序Contex
  8. android Service 简单例子
  9. Android(安卓)webview使用漏洞案例解析

随机推荐

  1. android_跑马灯
  2. [置顶] Android 动画animation 深入分析
  3. java/Android(安卓)error系列01: Value o
  4. Android中各种动画的使用
  5. 在Android上使用ZXing识别条码 二次开发
  6. androidの4.4版本沉浸式透明状态栏与导航
  7. Android布局编写示例【慢慢更新】
  8. Android应用开发——跑马灯效果
  9. 【Android】界面布局之TableLayout(表格
  10. Android(安卓)SDK: adb 常用命令的使用(无