想看看我的HTC ONE x 具有什么传感器。写个代码RUN一下。

代码很简单,直接贴了

  1. package zyf.demo.sensordemo;
  2.  
  3. import java.util.List;
  4.  
  5. import android.hardware.Sensor;
  6. import android.hardware.SensorManager;
  7. import android.os.Bundle;
  8. import android.app.Activity;
  9. import android.content.Context;
  10. import android.view.Menu;
  11. import android.widget.TextView;
  12.  
  13. public class MainActivity extends Activity {
  14. TextView tx1 = null;
  15.  
  16. @Override
  17. protected void onCreate(Bundle savedInstanceState) {
  18. super.onCreate(savedInstanceState);
  19. setContentView(R.layout.activity_main);
  20.  
  21. tx1 = (TextView) findViewById(R.id.txt);
  22. showIt();
  23. }
  24.  
  25. public void showIt() {
  26. //获得传感器管理器
  27. SensorManager sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
  28. List<Sensor> allSensors = sm.getSensorList(Sensor.TYPE_ALL);
  29.  
  30. StringBuilder sb = new StringBuilder();
  31. // 显示有多少个传感器
  32. sb.append("\t该手机有" + allSensors.size() + "个传感器:\n\n");
  33.  
  34. String typeName = "";
  35. // 显示每个传感器的具体信息
  36. for (Sensor s : allSensors) {
  37. typeName = SensorTypeName.getSensorTypeName(s.getType());
  38. sb.append(String.format("\t类型:%s\n", typeName));
  39. sb.append(String.format("\t设备名称:%s\n", s.getName()));
  40. sb.append(String.format("\t设备版本:%s\n", s.getVersion()));
  41. sb.append(String.format("\t供应商:%s\n", s.getVendor()));
  42. sb.append("\n");
  43. }// end for
  44.  
  45. tx1.setText(sb.toString());
  46. }
  47.  
  48. static class SensorTypeName {
  49. private static String[] itsNames;
  50.  
  51. static {
  52. itsNames = new String[20];
  53. itsNames[0] = "未知";
  54. itsNames[Sensor.TYPE_ACCELEROMETER] = "加速度";
  55. itsNames[Sensor.TYPE_MAGNETIC_FIELD] = "磁力";
  56. itsNames[Sensor.TYPE_ORIENTATION] = "方向";
  57. itsNames[Sensor.TYPE_GYROSCOPE] = "陀螺仪";
  58. itsNames[Sensor.TYPE_LIGHT] = "光线感应";
  59. itsNames[Sensor.TYPE_PRESSURE] = "压力";
  60. itsNames[Sensor.TYPE_TEMPERATURE] = "温度";
  61. itsNames[Sensor.TYPE_PROXIMITY] = "接近,距离传感器";
  62. itsNames[Sensor.TYPE_GRAVITY] = "重力";
  63. itsNames[Sensor.TYPE_LINEAR_ACCELERATION] = "线性加速度";
  64. itsNames[Sensor.TYPE_ROTATION_VECTOR] = "旋转矢量";
  65. itsNames[Sensor.TYPE_RELATIVE_HUMIDITY] = "TYPE_RELATIVE_HUMIDITY";
  66. itsNames[Sensor.TYPE_AMBIENT_TEMPERATURE] = "TYPE_AMBIENT_TEMPERATURE";
  67. itsNames[13] = "TYPE_AMBIENT_TEMPERATURE";
  68. itsNames[14] = "TYPE_MAGNETIC_FIELD_UNCALIBRATED";
  69. //itsNames[Sensor.TYPE_GAME_ROTATION_VECTOR] = "TYPE_GAME_ROTATION_VECTOR";
  70. }
  71.  
  72. public static String getSensorTypeName(int type){
  73. if(type > 0 && type < itsNames.length){
  74. return itsNames[type];
  75. }
  76. return "未知";
  77. }
  78. }
  79.  
  80. @Override
  81. public boolean onCreateOptionsMenu(Menu menu) {
  82. // Inflate the menu; this adds items to the action bar if it is present.
  83. getMenuInflater().inflate(R.menu.main, menu);
  84. return true;
  85. }
  86.  
  87. }

android开发(27) 看看我的手机里都有什么传感器的更多相关文章

  1. [转]Android开发要看的网站(不断更新中)

    Android网址或Blog Android官网 身为Android开发者不知道这个网站就太说不过去了,上面有你任何你需要的东西 Android Developers Blog Android官网博客 ...

  2. Android开发—已root的手机获取data路径

    开发android的时候,尽管手机已经root但是DDMS中还是没有data/data路径怎么办? 可以用cmd命令提示符为逐个文件夹设置权限: 打开cmd,输入 adb shell  回车—> ...

  3. Mac android 开发 sdk配置和手机连接

    本文适合已经很熟悉android开发的人员: 首先安装Mac版的eclipse 其次是android sdk的准备: 由于android sdk在线更新很不方便,所以可以选择复制:准备好Mac下的an ...

  4. ANDROID开发中注意不同手机CPU架构对SO文件的不同需求。

    如果没有对应于手机的SO文件,那么在调用第三方SDK时,会经常发生莫明其妙的错误.所以了解你调式或开发的目的手机CPU架构是很有必要的.

  5. Android开发必看知识

    奇艺高清UI界面源代码 http://www.eoeandroid.com/thread-160824-1-1.html 搜索关键字飞入飞出效果 http://www.eoeandroid.com/t ...

  6. 【Android开发】LogcatView,手机中查看logcat神器

    先上图 集成: 1, allprojects { repositories { ... maven { url 'https://www.jitpack.io' } } } 2, dependenci ...

  7. Android开发——监听Android手机的网络状态

    0. 前言 在Android开发中监听手机的网络状态是一个常见的功能,比如在没网的状态下进行提醒并引导用户打开网络设置,或者在非wifi状态下开启无图模式等等.因此本篇将网上的资料进行了整理总结,方便 ...

  8. Android开发之获取手机SIM卡信息

    TelephonyManager是一个管理手机通话状态.电话网络信息的服务类.该类提供了大量的getXxx(),方法获取电话网络的相关信息. TelephonyManager类概述: 可用于訪问有关设 ...

  9. Android开发学习总结——搭建最新版本的Android开发环境

    原文出自:https://www.cnblogs.com/xdp-gacl/p/4322165.html#undefined 最近由于工作中要负责开发一款Android的App,之前都是做JavaWe ...

随机推荐

  1. 搭建MVC及WEB API项目框架时碰到的问题集合

    前言 刚开始创建MVC与Web API的混合项目时,碰到好多问题,今天拿出来跟大家一起分享下.有朋友私信我问项目的分层及文件夹结构在我的第一篇博客中没说清楚,那么接下来我就准备从这些文件怎么分文件夹说 ...

  2. 图数据库titan 和 rexster安装手册

    titan是图数据库, rexster是图显示服务 titan 安装 下载 titan 0.3.2 解压 titan-all-0.3.2.zip 到 /opt/hugedata/share/解压后得到 ...

  3. supervisor 完整安装步骤

    Supervisorhttp://www.jianshu.com/p/bf2b3f4dec73http://www.jianshu.com/p/9abffc905645http://blog.csdn ...

  4. 深入理解Linux内核-信号

    信号:1.最初被引入作为用户态进程间通信2.内核也使用信号通知进程系统所发生的事件3.信号很短,发送给进程的唯一信息通常是一个数.4.名称通常以SIG为前缀5.信号时可消费资源,每个信号只能被传递一次 ...

  5. Flink 中的kafka何时commit?

    https://ci.apache.org/projects/flink/flink-docs-release-1.6/internals/stream_checkpointing.html @Ove ...

  6. Cloud Resource

    Cloud Public Cloud Aliyun AWS Azure Cloud Stack SDN指南 DNS:Band Private Cloud DC/OS OpenStack Hybrid ...

  7. linux命令(43):awk的使用技巧

    AWK是一种处理文本文件的语言,是一个强大的文本分析工具. 之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的Fam ...

  8. redis使用日志(4):如何让外部服务器访问

    开启redis 允许外网IP 访问 在 Linux 中安装了redis 服务,当在客户端通过远程连接的方式连接时,报could not connect错误. 错误的原因很简单,就是没有连接上redis ...

  9. Python模块学习——tempfile

    主要有以下几个函数: tempfile.TemporaryFile 如何你的应用程序需要一个临时文件来存储数据,但不需要同其他程序共享,那么用TemporaryFile函数创建临时文件是最好的选择.其 ...

  10. Lua函数[转]

    在大多数Lua语法分析中可以获得这些标准Lua函数. 无可争辩, 我们可以查阅Lua网站, 但是一些少了的函数被Blizzard进行了调整. 下面列出了所有Lua函数. WoW API中的Lua注意在 ...