如何在android中测量环境温度

2024-03-04

我想在 Android 设备上测量环境温度。但我的设备不包括温度计传感器。 我怎样才能测量它? 谢谢。


这是如何获取的基本示例Android 中的环境温度:

import android.support.v7.app.AppCompatActivity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Build;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;


public class MainActivity extends AppCompatActivity implements SensorEventListener {

    private TextView temperaturelabel;
    private SensorManager mSensorManager;
    private Sensor mTemperature;
    private final static String NOT_SUPPORTED_MESSAGE = "Sorry, sensor not available for this device.";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        temperaturelabel = (TextView) findViewById(R.id.myTemp);
        mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
        if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.ICE_CREAM_SANDWICH){
            mTemperature= mSensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE); // requires API level 14.
        }
        if (mTemperature == null) {             
            temperaturelabel.setText(NOT_SUPPORTED_MESSAGE);
        }       
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    @Override
    protected void onResume() {
        super.onResume();
        mSensorManager.registerListener(this, mTemperature, SensorManager.SENSOR_DELAY_NORMAL);
    }

    @Override
    protected void onPause() {                 
        super.onPause();
        mSensorManager.unregisterListener(this);
    }


    @Override
    public void onSensorChanged(SensorEvent event) {
        float ambient_temperature = event.values[0];
        temperaturelabel.setText("Ambient Temperature:\n " + String.valueOf(ambient_temperature) + getResources().getString(R.string.celsius));     
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        // Do something here if sensor accuracy changes.
    }
}

您可以从以下位置下载完整的示例:https://github.com/Jorgesys/Android_Ambient_Temperature https://github.com/Jorgesys/Android_Ambient_Temperature

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在android中测量环境温度 的相关文章

随机推荐

  • HTML onUnclick 处理程序? [复制]

    这个问题在这里已经有答案了 我想在单击输入字段时触发一个处理程序 并在取消选择输入字段时触发另一个处理程序 即 如果有人在字段之外单击 有办法做到这一点吗 点击处理程序非常简单
  • 自动在 bash 命令末尾添加一些内容

    我想知道如何在特定 bash 命令的末尾添加一些内容 而无需显式键入它 例如 我希望能够输入 mycommand argument 该行将提交为 mycommand argument 我知道如何在我的中设置别名 bashrc e g ali
  • 在 Mac 上启动 AVD(Android 虚拟设备)时 qemu-system-i386 意外退出(非法指令 4)

    我在 Mac Macbook Pro 2017 年 8 月 OSX 10 12 4 上安装了 Android Studio 然后启动 创建了一个 hello world 项目并创建了一个 AVD Android 虚拟设备 Nexus 5 来
  • CloudFront 签名 url 的最长过期时间是多少

    我正在使用 CloudFront 从中生成签名 URLdoc https docs aws amazon com AmazonCloudFront latest DeveloperGuide CFPrivateDistJavaDevelop
  • JAXB 如何推进 XMLStreamReader?

    我正在使用 JAXB 通过 XMLStreamReader 从非常大的 XML 文件中解组对象 如果我要解组的 XML 元素是分隔的 通过换行符甚至单个空格 则效果很好 如果我要解组的 XML 元素之间没有空格 那么我会丢失所有其他项目 X
  • Rust 编译器什么时候不能证明借用是不相交的?

    In 诺米康第 3 2 节 https doc rust lang org nomicon references html liveness 在 活跃度 标题下 它说 然而 经常出现的情况是 Rust 不够聪明 无法 证明多次借用是不相交的
  • std 映射复合键

    我有一个问题运算符std map 所需的方法 我使用结构作为复合键 如下所示 struct MyKey std string string1 std string string2 std string string3 unsigned in
  • 跟踪实时推文流中的关键字

    我安装并尝试了 tweepy 我现在正在使用以下功能 from API参考 http packages python org tweepy html api html api reference API public timeline 返回
  • 检查拖放是否正在进行

    有什么方法可以检查拖放是否正在进行中 可以检查一些方法或win32 api吗 我知道我可以设置AllowDrop 并使用事件 但在这种情况下它不起作用 基本上我想用代码检查是否any拖放正在进行中 我有一个类似的问题 我自己回答了 经过几个
  • 了解 Tensorflow LSTM 模型输入?

    我在理解 TensorFlow 中的 LSTM 模型时遇到一些困难 我用tflearn http tflearn org 作为包装器 因为它自动完成所有初始化和其他更高级别的工作 为了简单起见 我们考虑这个示例程序 https github
  • MongoDB - 将 CSV 导入嵌套文档

    我有一个架构 其文档结构如下所示 id ObjectId 4f8dcb06ee21783d7400003c venue ObjectId 4f8dcb06ee21783d7400003b name Some event webite www
  • 计算两个数组之间相关性的有效算法[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在寻找一种算法来计算两个双精度数
  • 解析包含自定义格式的日期和时间的字符串

    我有一个下一个格式的字符串 ORDER20100322194007 where 20100322是一个日期并且194007是一个时间 如何解析字符串并获取其中包含的内容DateTime object 它总是以ORDER string pat
  • iOS 12 和 SKShader 中已弃用 OpenGL ES

    我对 SpriteKit 中着色器的概念和使用非常陌生 我发现本教程介绍了如何使用附加到 Color Sprite 的自定义着色器属性的自定义着色器文件 Fractal fsh 渲染 Mandelbrot 分形 https www wehe
  • Logstash 的流行为不一致 - ELK

    我有一个包含几个平面字段和几个嵌套字段的索引 我正在尝试通过 Logstash 将 SQL Server 中的信息通过特定 ID 流式传输到嵌套字段中 当我流式传输数据时only one然后它就完全成功地通过了 没有任何问题 另一方面 当我
  • 释放 Javascript 对象使用的内存

    我应该自己释放分配的内存 还是有一种垃圾收集器 在 JavaScript 中使用以下代码可以吗 function fillArray var c new Array c push 3 c push 2 return c var arr fi
  • 将 Google Analytics 代码放置在 WordPress 特定页面中

    在客户填写联系表单后 我试图让 Google Analytics 代码在感谢页面上工作 并且我尝试使用 HTML 将其放入 Wordpress 后端管理下的页面中的感谢页面中tab 但它似乎在代码之间生成不必要的 p 和 br 标签 特别是
  • 忽略标志指针 0x10ef76ec0 的 RegisterValidateFunction():在 Xcode 中的该地址处找不到标志

    我该如何解决这个问题 W0721 13 54 19 105928 1 commandlineflags cc 1503 忽略标志指针 0x10ef76ec0 的 RegisterValidateFunction 在该地址找不到标志 出现此问
  • Mac OS Gatekeeper 阻止签名命令行工具

    我在 Xcode 中有一个 命令行工具 目标 不是应用程序包 它被 Gatekeeper 阻止 我多年来一直使用这个工具作为我的 PostCheck 地址簿插件的简单安装程序 2012 年 我用我的 Apple 开发者 ID 签署了该工具
  • 如何在android中测量环境温度

    我想在 Android 设备上测量环境温度 但我的设备不包括温度计传感器 我怎样才能测量它 谢谢 这是如何获取的基本示例Android 中的环境温度 import android support v7 app AppCompatActivi