获取手机传感器
2017-09-21 10:45
169 查看
package com.bawei.wzq.sensordeom;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
import java.util.List;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
import java.util.List;
public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; private SensorManager sensorManager; private Sensor defaultSensor; private SensorEventListener sensorEventListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取系统服务里面的一个magager; sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); //得到了一个加速度传感器 defaultSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); } @Override protected void onResume() { super.onResume(); // 一般在这三个方向的重力加速度达到40就达到了摇晃手机的状态。 // 三星 i9250怎么晃都不会超过20,没办法,只设置19了 sensorEventListener = new SensorEventListener() { @Override public void onSensorChanged(SensorEvent event) { float[] values = event.values; float x = values[0]; float y = values[1]; float z = values[2]; Log.e(TAG, x + "-----" + y + "-----" + z); // 一般在这三个方向的重力加速度达到40就达到了摇晃手机的状态。 int tempValue = 9;// 三星 i9250怎么晃都不会超过20,没办法,只设置19了 if (Math.abs(x) > tempValue || Math.abs(y) > tempValue || Math.abs(z) > tempValue) { Toast.makeText(MainActivity.this, "我在摇一摇", Toast.LENGTH_SHORT).show(); } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } }; sensorManager.registerListener(sensorEventListener, defaultSensor, sensorManager.SENSOR_DELAY_NORMAL); } @Override protected void onPause() { super.onPause(); sensorManager.unregisterListener(sensorEventListener); } //获取手机支持哪些传感器 public void testSensor(View view) { //Accelerometer,加速度 List<Sensor> sensorList = sensorManager.getSensorList(Sensor.TYPE_ALL); for (int i = 0; i < sensorList.size(); i++) { Sensor sensor = sensorList.get(i); String name = sensor.getName(); String vendor = sensor.getVendor(); Log.e(TAG, "name:" + name + "----vendor" + vendor); } } }
相关文章推荐
- android 获取手机中所有的传感器Sensor类使用方法
- android 获取手机中所有的传感器Sensor类使用方法
- 获取手机气压传感器数据
- 获取手机支持的所有传感器类型
- Android之如何获取手机中所有的传感器
- android传感器学习之获取手机传感器
- android 获取手机中所有的传感器Sensor类使用方法
- 获取手机传感器,运用方向传感器做指南针
- Android学习之手机传感器的获取
- IOS10 无法获取手机传感器
- android传感器学习之获取手机传感器
- 获取Android手机设备中的传感器
- 获取手机方位 传感器
- Android中获取手机中的联系人信息
- 手机Web开发 jQuery 获取屏幕高度、宽度
- Android 利用方向传感器获得手机的相对角度
- IOS 特定于设备的开发:获取和使用设备姿势(通过手机方向控制3d物体显示)
- Windows传感器编程之获取传感器数据
- 序列号和设备标识UDID码手机直接获取方式:
- 关于多语言获取手机正在运行应用信息失败