安卓学习日记——传感器

AutoGLM:旧安卓手机离线运行GLM-4的轻量化AI方案 端侧大模型推理是指在终端设备本地完成大型语言模型的加载与计算,无需依赖云端服务。其核心原理在于模型压缩、硬件加速适配与系统级优化,技术价值体现在隐私保护、低延迟响应和离线可用性。典型应用场景包括手写笔记润色、汽车故障诊断、方言健康咨询等对网络稳定性与数据敏感性要求高的边缘任务。AutoGLM正是面向2016–2019年主流旧安卓设备(如麒麟960、骁龙845)设计的INT4量化GLM-4推理框架,深度融合NNAPI与Vulkan调度,并支持Feenote等手写APP无缝联动。 阅读详情
  • 概述

大多数安卓设备都内置了传感器,用来测量移动,方向和各种环境条件。

Android平台支持以下三类传感器:

这些传感器能够提供精度高且准确的原始数据。
如果要监视三维设备运动或定位,或者监视设备周围的环境变化,那么传感器会极其有用。
例如:游戏可以追踪设备重力感应器的读数来推断复杂的用户手势和动作,比如倾斜,摇晃,旋转或摆动。
同样地,天气应用程序可以使用设备温度传感器和湿度传感器来计算并报告dewpoint,旅行应用程序可以使用地磁传感器和加速计来报告罗盘方位。
运动传感器:这些传感器测量三个轴的加速力和旋转力。这一类别包括加速度计,重力感应器,陀螺仪和旋转矢量传感器。
环境传感器:这些传感器测量各种环境参数,例如环境空气温度和压力,照明和湿度。此类别包括了气压计,光度计和温度计。
位置传感器:这些传感器测量了设备的物理位置。此类别包括方向传感器和磁力计。
获取本机传感器
在这里插入图片描述

  //获取系统传感器管理器
        SensorManager sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        //通过系统传感器管理器..获取本机所有传感器.
        List<Sensor> sensorList = sm.getSensorList(Sensor.TYPE_ALL);

        for(Sensor s :sensorList){
            Log.i("sensorList",s.toString());
        }

在这里插入图片描述
获取指定的某一个传感器
在这里插入图片描述
注册传感器的监听对象

//注册传感器的监听对象
        sm.registerListener(new SensorEventListener() {
            @Override
            public void onSensorChanged(SensorEvent event) {
            //传感器数据变化,在该方中我们可以获取传感器变化的值
                float x=event.values[0];
                float y=event.values[1];
                float z=event.values[2];
                textView_content.setText("x="+x+"y="+y+"z="+z);

            }
            @Override
            public void onAccuracyChanged(Sensor sensor, int accuracy) {
            //传感器精度变化
            }
        },type_acclerometer,SensorManager.SENSOR_DELAY_NORMAL);

在这里插入图片描述
摇一摇测试

 int ringValue=40;//XYZ三值的总和表示摇晃
    boolean flag=false;//是否播放声音
 if ((Math.abs(x)+Math.abs(y)+Math.abs(z))>=ringValue && flag==false){
                    flag=true;
                    textView_start.setVisibility(View.VISIBLE);
                   MediaPlayer mp= MediaPlayer.create(MainActivity.this,R.raw.zhh);
                   mp.start();
                   mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                       @Override
                       public void onCompletion(MediaPlayer mp) {
                            mp.release();
                            flag=false;
                           textView_start.setVisibility(View.GONE);
                       }
                   });

在这里插入图片描述

温度传感器

   //温度传感器
       Sensor type_ambient_temperatyre=sm.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE);
       sm.registerListener(new SensorEventListener() {
           @Override
           public void onSensorChanged(SensorEvent event) {
                float temp=event.values[0];
                temp= (float) (Math.round(temp*10.0)/10.0);
                textView_temp.setText("当前温度:"+temp+"℃");
           }

           @Override
           public void onAccuracyChanged(Sensor sensor, int accuracy) {

           }
       },type_ambient_temperatyre,SensorManager.SENSOR_DELAY_NORMAL);

在这里插入图片描述
自由的小方块
Rect

package com.example.sensor;

public class Rect {
    float left=100,top=100,right=100,bottom=100;
    private int width,height;
    public Rect(int width,int height)
    {
        this.width=width;
        this.height=height;
        left=width/2-right/2;
        top=height/2-bottom/2;

    }

    public float getBottom() {
        return bottom;
    }

    public void setBottom(float bottom) {
        this.bottom = bottom;
    }

    public float getLeft() {
        return left;
    }

    public void setLeft(float left) {
        this.left -= left;
        if (this.left<=0)
        {
            this.left=0;
        }
        else if (this.left>=width-this.right)

        {
            this.left=width-this.right;
        }
    }

    public float getRight() {
        return right;
    }

    public void setRight(float right) {
        this.right = right;
    }

    public float getTop() {
        return top;
    }

    public void setTop(float top) {
        this.top+= top;
        if (this.top<=0)
        {
            this.top=0;
        }
        else if ( this.top>=height-this.bottom)
        {
            this.top=height-this.bottom;
        }
    }
}

自定义视图
RectView

package com.example.sensor;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;


public class RectView extends View {
    Rect rect;
    private int width,height;
    Paint paint;
    public RectView(Context context,int width,int height) {
        super(context);
        this.width=width;
        this.height=height;
        paint =new Paint();
        paint.setColor(Color.GREEN);
        rect=new Rect(width,height);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawRect(rect.getLeft(),rect.getTop(),rect.getRight()+rect.getLeft(),rect.getTop()+rect.getBottom(),paint);
    }
}

package com.example.sensor;

import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.util.DisplayMetrics;

public class Main2Activity extends Activity {
    private RectView rv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        rv = new RectView(this, dm.widthPixels, dm.heightPixels);
        setContentView(rv);
        SensorManager sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        Sensor type_gravity = sm.getDefaultSensor(Sensor.TYPE_GRAVITY);
        sm.registerListener(new SensorEventListener() {
            @Override
            public void onSensorChanged(SensorEvent event) {
                float x = event.values[0];
                float y = event.values[1];
                rv.rect.setLeft(Math.round(x));
                rv.rect.setTop(Math.round(y));
                rv.invalidate();//屏幕重绘
            }

            @Override
            public void onAccuracyChanged(Sensor sensor, int accuracy) {

            }
        }, type_gravity, SensorManager.SENSOR_DELAY_GAME);
    }
}

在这里插入图片描述

【Java学习日记4】java的基础知识(终) Java源代码(`.java`文件)会被编译成**字节码**(`.class`文件),而非直接编译为机器码。- 支持三大平台:**Java SE**(桌面应用)、**Java EE**(企业级应用)、**Java ME**(嵌入式系统)。Java的跨平台性是其最显著的特点之一,核心原理在于**Java虚拟机(JVM)**的设计。- **Android应用**:虽然Kotlin逐渐流行,但Java仍是Android开发的基石。- **书籍**:《Java核心技术》《Effective Java》。 阅读详情

相关推荐

安卓日记本应用开发实战项目

Test你看,一个看似简单的日记本,背后竟藏着这么多门道。但这正是Android开发的魅力所在——每一行代码都在讲述一个关于稳定性、可维护性和用户体验的故事。别再满足于“跑起来就行”,试着问自己:- 这段代码半年后还能轻松修改吗?- 新人接手需要多久才能看懂?- 在低端机上会不会卡顿?当你开始思考这些问题时,你就已经走在成为高手的路上了。加油,未来的架构师!💪本文还有配套的精品资源,点击获取。

weixin_42168902的博客 993

淦!玩一玩Android传感器

提到手机上的传感器大家应该都不陌生,比如说方向传感器、陀螺仪、重力传感器、光线传感器等。现在的手机基本集成少说有十几种传感器,面向将来的人工智能,这块知识也是我们必备的。 传感器分类 Android 平台支持三大类传感器: 动态传感器 这类传感器测量三个轴向上的加速力和旋转力。包含加速度传感器、重力传感器、陀螺仪和旋转矢量传感器。 环境传感器 这类传感器测量各种环境参数,如环境气温、气压、照度和湿度。这个类别中包含气压计、光度计和温度计。 位置传感器 这类传感器测量设备的物理位置。这个类别中包含屏幕方向

乂星人 2272

传感器学习总结.doc

传感器学习总结.doc

android 添加sensor 权限

1.frameworks/base/core/res/AndroidManifest.xml:               android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"         android:protectionLevel="dangerous"         android:lab

xiayu98020214的专栏 2万+

Skiplist,B,B+tree,LSM tree

SkipList 理解(如何实现): 即使是有序的链表,查找的时间复杂度也是O(n),但链表不能随机访问所以不适用于二分查找,使得查找的时间复杂度为O(logn)。 于是将有序链表和二分查找结合得到了SkipList,类似于二叉搜索树,这是一种以空间换时间的算法,通过在每个节点中增加向前的指针,从而提升查找效率(如下图所示)。 一开始如a所示,是一个有序的链表,时间复杂度O(n)。随后建立了e所示的SkipList,从最顶层往下查找,可以跳过许多元素,减少查找次数。 ​

weixin_45875458的博客 947

Silvaco Atlas入门指南——从零开始掌握半导体器件仿真

本文为Silvaco Atlas半导体器件仿真软件的入门指南,详细介绍了从零开始掌握该工具的核心流程。内容涵盖Atlas的基本概念、仿真流程、核心文件(输入、结构、输出文件)、交互式与批处理两种操作模式,并逐步演示了如何从定义网格、划分区域、设置电极到进行掺杂、选择物理模型并求解,最终获取和分析器件特性的完整步骤。旨在帮助微电子相关专业人员和工程师快速上手这一强大的“数字实验室”,提升半导体器件设计与研发效率。

weixin_29306317的博客 401

Android传感器学习总结

1、名词解析:传感器是把现实中的某种指标以数据的形势传送给开发者2、使用步骤:①声明传感器管理者:private SensorManager sensorManager;②获取传感器系统服务:sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);③获取某一传感器,例如光照传感器:Sensor sensor =

zhengyikuangge的博客 1149

电镀技术:微型制造的原子级加法工艺与核心优势

电镀是一种利用电解原理在基材表面沉积金属层的表面处理技术,其本质是通过电场控制溶液中金属离子的迁移与还原,实现原子级的可控沉积。这一过程的核心在于对电流密度、温度、添加剂等参数的精密调控,从而实现对镀层结晶结构、性能的“编程”。从技术价值看,电镀作为一种“加法制造”工艺,在微观尺度上具有无与伦比的保形性和材料灵活性,能够实现复杂三维结构的均匀覆盖与功能复合。在应用场景上,它尤其契合现代微型化制造的需求,例如在集成电路的铜互连填充、高密度PCB板微孔金属化、MEMS传感器电极制备以及柔性电子器件制造中发挥着不

weixin_42524842的博客 528

Android传感器的使用总结

随着手机的发展,现在各大手机支持的传感器类型也越来越多,在开发中利用传感器进行某些操作令人们有一种耳目一新的感觉,例如微信中的摇一摇,以及手机音乐播放器中的摇一摇切歌。今天来简单介绍下Android中传感器的使用以及一些常用的传感器。

wenzhi的博客 2万+

3个国产AI大模型实战:如何用DeepSeek+豆包+千问批量生成高质量测试用例(附完整代码)

本文详细介绍了如何利用DeepSeek、豆包和千问三大国产AI大模型批量生成高质量测试用例的实战方法。通过Python环境配置、多模型SDK安装和统一接口封装,实现高效测试用例生成,并结合结构化提示词设计和多模型结果对比分析,显著提升测试效率和覆盖率。

weixin_29197699的博客 710

AI视频生成技术研究报告:现状、挑战与展望

AI 视频生成技术概述:介绍 AI 视频生成技术的基本概念,回顾其发展历程,从早期依赖图像拼接的简单生成方式,到如今融合多种先进技术的复杂模型应用,梳理技术演进的关键节点和重要突破。同时,分析该技术在当前阶段的特点,包括生成视频的质量、速度、灵活性等方面,以及与传统视频制作方式的差异,阐述 AI 视频生成技术如何改变视频创作的流程和模式。技术实现路径分析。

daqsdfas的博客 4578

Python开发安卓-Virgo库开发日记(2)--增加传感器支持

增加Virgo传感器支持,内含详细用法+案例+源代码+运行动图

caodn1232的博客 571

【CVPR2025 DEIM】超详细!手把手训练自己的数据集教学:从源码下载,配置虚拟环境,准备数据集、训练、验证、推理测试 ,实现0到1的完整教学过程。本文在win系统上训练,最强实时目标检测算法!

本文详细介绍了CVPR2025 DEIM目标检测模型的完整使用流程。内容包含:1)源码下载与虚拟环境配置;2)Visdrone2019数据集准备与配置文件修改;3)训练参数设置及Windows系统常见问题解决方案;4)模型验证、推理测试及热力图生成方法。特别针对Windows用户提供了虚拟环境配置指导,并详细说明了数据集路径设置、参数调整等关键步骤。通过本文的指导,小伙伴可以快速掌握DEIM模型的使用方法,用于学术论文研究和实验分析。

Ai缝合怪、助力小伙伴高效发论文 7650

Android菜鸟日记15-传感器与摄像头

传感器 sensorManager = (SensorManager) getContext().getSystemService( Context.SENSOR_SERVICE); //获得传感器控制器[SensorManager] //getContext()获得环境 //getSystemService(Context.SENSOR_SERVICE);获得系统服务(传感器) ...

ipoolo的专栏 220

16、保障Azure应用安全:密钥管理与身份认证

本文深入探讨了保障Azure应用安全的关键措施,包括使用网络安全工具(如Application Gateway和Azure Front Door)防范攻击,解决传统密钥和机密存储方式的安全隐患,以及通过Azure Key Vault实现敏感信息的安全管理。同时,介绍了使用托管标识实现Azure资源间安全访问的方法,并结合实际操作步骤展示了如何配置Key Vault、设置访问策略、存储机密以及授予Web应用对SQL Server的访问权限。最后,对不同安全措施进行了比较,并提出了在开发、测试及生产环境中的综合

rock5的博客 72

Python FastAPI 面试题及参考答案

FastAPI 的路由机制是其核心功能之一,用于将不同的 URL 路径映射到相应的处理函数。通过定义路由,可以构建出功能丰富的 API。在 FastAPI 中,使用装饰器来定义路由。在这个示例中,是一个装饰器,它将根路径"/"的 GET 请求映射到read_root函数。当客户端发送一个 GET 请求到根路径时,FastAPI 会调用read_root函数并返回结果。

大模型大数据攻城狮的专栏 2248

【安卓学习之开发工具】 Android 学习-- 下载过的一些项目

█ 开发网站:  ● 谷歌开发者大陆地区  ● Android - 知识库 - 你身边的技术百科全书 - 优快云  ● AndroidDevTools Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载  ● Android Studio 中文社区(官网) -Android App开发工具集-Android SDK/JDK/ADT/Gr...

任我飞的博客 1406

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Android 5.0 CTS 代码修改日记

1.android.os.cts.BuildVersionTest#testReleaseVersion  CTS Log  04-24 19:08:43.460 11050 11065 I TestRunner: failed: testReleaseVersion(android.os.cts.BuildVersionTest) 04-24 19:08:43.460 11050 1106

Android 3982

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Python开发Android新选择--Virgo库开发日记(1)

用Python开发Android的更优雅高效的方式!

caodn1232的博客 2454

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

android睡眠伴侣,GitHub - HuangZengPei/Sleepmon: 我的Android团队项目,一款可以监测、统计睡眠质量情况的睡眠健康伴侣应用。...

Sleepmon我的Android团队项目,一款可以监测、统计睡眠质量情况的睡眠健康伴侣应用。项目名称:Sleepmon(眠眠萌)软件环境:Windows10、Android Studio、Android手机项目描述:开发一款可以监测、统计睡眠质量情况的睡眠健康伴侣应用,陪伴用户度过夜晚美好的睡眠时间,培养良好睡眠习惯,感知并记录下睡眠过程,呈现可视化的睡眠报告并进行评分,帮助用户更了解自己的睡眠...

weixin_42497299的博客 1203

Android 4.4 CTS 代码修改日记

1、直接设置问题 estUnknownSourcesOffByDefault fail junit.framework.AssertionFailedError: Deviceshould not ship with 'Unknown Sources' enabled by default.expected: butwas: atandroid.provide

Android 7623

人工智能小白日记 人脸检测识别之6 活体识别调研(opencv采集landmark安卓版移植全过程)

文章目录前言正文1 概念2 一些实现2-1 腾讯优图的光线活体2-2 论文综述2-3 opencv可以实现2-4小结 前言 囧, 人脸识别过后,需要看看活体识别的例子。为此,做些调研工作。 正文 1 概念 “活体检测是在一些身份验证场景确定对象真实生理特征的方法,在人脸识别应用中,活体检测能通过眨眼、张嘴、摇头、点头等组合动作,使用人脸关键点定位和人脸追踪等技术,验证用户是否为真实活体本人操作。可...

kkae8643150的专栏 2042

FingerLock:简化安卓指纹认证的新选择

FingerLock:简化安卓指纹认证的新选择 随着移动支付和数据安全的日益重要,指纹认证已成为提升用户体验和安全保障的关键技术之一。对于安卓开发者而言,集成复杂的生物识别技术可能是一项挑战,但有了【FingerLock】库,这一切将变得简单易行。 项目介绍 FingerLock是一个专为简化安卓应用中指纹认证过程设计的库。它巧妙地整合了【Material Dialogs】的优雅界面,确保开发者能...

gitblog_01124的博客 725

android app 架构设计_你竟然还没用过这些APP?

那些小而美的APP们我们每天的日常生活,都离不开各式各样的APP,帮助我们购物,社交,娱乐。除了日常大众普遍使用的APP外,小编精心挑选了7个小众精品APP,爱玩的你一定要试试。工具类一个木涵官方自称为安卓端的瑞士军刀,是一个集成了多种工具的APP。从快递查询,单位换算到instagram中照片的获取,wifi密码查看,手机大文件清理,各类的工具都能找到。同时具有小程序功能,可以直接在...

weixin_39890452的博客 149

Android API 学习日记----《设备兼容性》

Device Compatibility

u010345160的专栏 1032
上一篇: 安卓学习日记——NDK开发
下一篇: 安卓学习日记——广告
chen_xiaoke
博客等级 码龄8年 32粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值