target31对传感器采样率限制

news2024/11/28 0:53:19

    target31谷歌做了一些列的适配,其中对看似无关紧要的传感器采用率做了限制,最近几年很火的摇一摇开屏广告就是基于传感器去实现的。这篇文章,我们就一起去看一下target31对传感器采样频率的限制。

一、背景

    先说一下背景:近期(其实也挺久了),谷歌公司发布了聚焦用户隐私保护的安卓12操作系统更新说明。在此次升级中,安卓系统除了对麦克风,摄像头等传感器进行了安全增强,还对加速计等看似与隐私无关的运动传感器制定了严格的使用规范,加强了对其高频传感数据的权限管理。究其原因在于加速度计等运动传感器已被证实可窃听手机通话!而这一重大发现来自浙江大学网络空间安全研究中心。

    浙大的研究成果地址:浙大网安科研成果引发谷歌安卓操作系统隐私机制变革 - 浙江大学网络空间安全学院

二、采样率限制

     基于以上的安全问题,谷歌在Android12(target31)对传感器的采样率做了严格的限制。目前Android开发者网站中文版已经没有该段内容,具体可以查看英文版传感器概览  |  Android 开发者  |  Android Developers 

引用网上的翻译:

为了保护有关用户的潜在敏感信息,如果应用面向 Android 12(API 级别 31)或更高版本,系统会对来自某些运动传感器和位置传感器的数据的刷新率进行限制。该数据包括设备的accelerometer, gyroscope, 和geomagnetic field sensor.

刷新率限制取决于访问传感器数据的方式:

  1. 如果调用 registerListener() 方法监听传感器事件,传感器采样率限制为 200 Hz。

  2. 如果使用SensorDirectChannel 类,则传感器采样率被限制为 RATE_NORMAL,通常约为 50 Hz。

如果您的应用需要以更高的速率收集运动传感器数据,您必须声明 HIGH_SAMPLING_RATE_SENSORS 权限,如以下代码片段所示。否则,则会发生 SecurityException。

<manifest ...>
    <uses-permission android:name="android.permission.HIGH_SAMPLING_RATE_SENSORS"/>
    <application ...>
        ...
    </application>
</manifest>

 三、为什么是200HZ

    其实浙大的研究报告已经提到了:"从安全性角度来说,当运动传感器以200Hz的频率工作时,其能完整恢复的语音信号将限制在100Hz以下,而人类语音的信息主要存在于85Hz以上的频段,因此运动传感器能采集到的语音信息已相对较少。"

    赫兹(HZ),是次数/秒的意思,1HZ = 1次/秒,那200HZ就是200次/秒,一次就是1/200 = 0.005秒。

    我们再看下Android传感器对加速度的收集频率,以下是SENSOR_DELAY_FASTEST到SENSOR_DELAY_NORMAL的收集频率,单位是微秒,也就是xxx微秒收集一次:

    0.005秒 = 0.005 * 1000 * 1000微秒 = 5000微秒,所以说,除了SENEOR_DELAY_FASTEST外,其他的三种采样率都可以使用。 

四、其他注意事项

    还需要注意的是,registerListener方法的最后一个参数是个可任意传入的int值,那如果传入的不是这四个枚举,那么会使用传入的值,也就是说,0-4999也是不能直接传入的。

     如果传入0-4999的值,那么也会crash:

    以上是对Android target31适配传感器的总结,其实在大多数的场景下,根本没必要去使用那么快的频率,使用DENSOR_DELAY_NORMAL或SENSOR_DELAY_UI就已经足够。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/331636.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用 QuTrunk+Amazon Deep Learning AMI(TensorFlow2)构建量子神经网络

量子神经网络是基于量子力学原理的计算神经网络模型。1995年&#xff0c;Subhash Kak 和 Ron Chrisley 独立发表了关于量子神经计算的第一个想法&#xff0c;他们致力于量子思维理论&#xff0c;认为量子效应在认知功能中起作用。然而&#xff0c;量子神经网络的典型研究涉及将…

103-并发编程详解(下篇)

这里还是续写上一章博客 线程池与Future&#xff1a; 线程池的实现原理&#xff1a; 下图所示为线程池的实现原理&#xff1a;调用方不断地向线程池中提交任务&#xff0c;线程池中有一组线程&#xff0c;不断地从队列中取 任务&#xff0c;这是一个典型的生产者—消费者模型…

python基于django的高校招生管理系统

目录 1 绪论 1 1.1课题背景 1 1.2课题研究现状 1 1.3初步设计方法与实施方案 2 1.4本文研究内容 2 2 系统开发环境 4 2.1 使用工具简介 4 2.2 环境配置 4 2.3 B/S结构简介 4 2.4 MySQL数据库 5 2.5 框架介绍 5 3 系统分析 6 3.1系统可行性分析 6 3.1.1经济可行性 6 3.1.2技术可…

Linux驱动开发基础__mmap

目录 1 引入 2 内存映射现象与数据结构 3 ARM 架构内存映射简介 3.1 一级页表映射过程 3.2 二级页表映射过程 4 怎么给 APP 新建一块内存映射 4.1 mmap 调用过程 ​编辑4.2 cache 和 buffer 4.3 驱动程序要做的事 5 编程 5.1 app编程 5.2 hello_drv_test…

操作符——“C”

各位CSDN的uu们你们好呀&#xff0c;今天&#xff0c;总算是要到我们的操作符啦&#xff0c;在C语言中&#xff0c;操作符是一个极为复杂的东西&#xff0c;下面&#xff0c;就让我们进入操作符的世界吧 算术操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符…

Spring Data JPA和Mybatis介绍

上一篇博客中简要介绍了如何通过Spring Data JPA操作数据库&#xff0c;并提供了Demo&#xff0c;从Demo中可以看到&#xff0c;Spring data JPA提供了很多Repository&#xff0c;继承这些Repository或者直接使用Repository中提供的方法&#xff0c;即可对数据进行增删改查操作…

【刷题笔记】--二叉搜索树--查找,插入

二叉搜索树的性质&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。两道力扣题&#xff1a;①查找二叉搜索树中的某个根节点。②在二叉搜索树中插入某个结点 题目①leedcode700&#x…

大数据技术架构(组件)26——Spark:Shuffle

2.1.6、Shuffle2.1.6.0 Shuffle Read And WriteMR框架中涉及到一个重要的流程就是shuffle,由于shuffle涉及到磁盘IO和网络IO&#xff0c;所以shuffle的性能直接影响着整个作业的性能。Spark其本质也是一种MR框架&#xff0c;所以也有自己的shuffle实现。但是和MR中的shuffle流程…

九龙证券|军工股全线走强!中航电测又涨停,这一板块所有个股都在涨

今天早盘&#xff0c;A股全体低开高走&#xff0c;到午间收盘&#xff0c;主要股指均红盘报收&#xff0c;两市成交仍旧低迷。 盘面上&#xff0c;国防军工、酒店餐饮、芯片、钙钛矿电池等板块涨幅居前&#xff0c;文教休闲、锂矿、水产品、供销社等板块跌幅居前。北上资金净流…

使用openai-whisper 语音转文字

前言&#xff1a;最近由于ChatGPT 的大热&#xff0c;AI 应用领域再次进入大众的视线&#xff0c;今天介绍一款AI应用whisper 可以较为准确的将人声转换为文字&#xff08;支持多国语言&#xff09;一、安装安装有两种方式pip 和源码编译安装&#xff0c;这里介绍pip安装方式安…

尚医通(八) Nginx

目录一、项目中的服务地址二、配置nginx反向代理1、安装window版的nginx2、配置nginx代理3、重启nginx4、测试三、配置开发环境1、修改文件内2、重启前端程序一、项目中的服务地址 只有一个api地址的配置位置&#xff0c;而我们实际的后端有很多微服务&#xff0c;所以接口地址…

C#【必备技能篇】序列化与反序列化(json、xml、二进制文件)

文章目录一、序列化为json1、序列化与反序列化【基本使用】实例代码&#xff1a;2、封装成泛型方法【可以公用】实例代码&#xff1a;二、序列化为xml1、序列化与反序列化【基本使用】实例代码&#xff1a;2、封装成泛型方法【可以公用】实例代码&#xff1a;三、序列化为二进制…

Windows sshfs挂载远程文件夹

Windows sshfs挂载远程文件夹 Windows系统通过sshfs&#xff0c;远程挂载文件服务&#xff0c;实现远程文件夹共享的功能 目录 Windows sshfs挂载远程文件夹 1.安装WinFsp 2.安装SSHFS-Win 3.挂载Linux文件服务 4.断开Linux文件服务 1.安装WinFsp 下载地址&#xff1a;…

Vue3配置路由(vue-router)

文章目录前言一、配置路由&#xff08;vue-router&#xff09;1、安装路由2、新建页面3、创建路由配置文件4.特殊报错&#xff01;前言 紧接上篇文章&#xff0c;vue3的配置与vue2是有所差别的&#xff0c;本文就讲述了如何配置&#xff0c;如果本文对你有所帮助请三连支持博主…

2023-02-09 Elasticsearch 模糊搜索

1 prefix 前缀搜索 以前缀开头的搜索&#xff0c;不计算相关度得分 前缀搜索匹配的是term&#xff0c;而不是field。 前缀搜索的性能很差 前缀搜索没有缓存 前缀搜索尽可能把前缀长度设置的更长 针对于中文分词器 index_prefixes: 默认 “min_chars” : 2, “max_chars” : …

CMMI落地常见4大问题及改进措施

&#xff08;一&#xff09;、CMMI落地常见的4大问题&#xff1a; 1、组织成员并非全部认可与参与 在CMMI推行过程中&#xff0c;过程改进小组EPG负责整个改进工作&#xff0c;但组织其他成员并不是全部认可和自愿参与&#xff0c;甚至有些成员认为与自己无关。从而造成EPG在推…

Spring-Data-Jpa实现继承实体类

写在前面&#xff1a;从2018年底开始学习SpringBoot&#xff0c;也用SpringBoot写过一些项目。现在对学习Springboot的一些知识总结记录一下。如果你也在学习SpringBoot&#xff0c;可以关注我&#xff0c;一起学习&#xff0c;一起进步。 相关文章&#xff1a; 【Springboot系…

ZooKeeper 避坑实践: Zxid溢出导致选主

作者&#xff1a;子葵 背景 线上 flink 用户使用 ZooKeeper 做元数据中心以及集群选主&#xff0c;一些版本的 flink 在 ZooKeeper 选主时&#xff0c;会重启 Job&#xff0c;导致一些非预期的业务损失。而 ZooKeeper 在 zxid溢出时&#xff0c;会主动触发一次选主&#xff0…

复习0206

目录 一、访问修饰符 一、权限范围 二、注意事项 二、封装&#xff08;面向对象的三大特征之一&#xff09; 一、封装的好处 二、封装的实现步骤 三、和构造器结合 四、练习题中的细节 一、访问修饰符 一、权限范围 访问修饰符用于控制方法和属性&#xff08;成员变量…

Kylin构建引擎的衍生维度

目录1. 衍生维度(derived dimension)1. 衍生维度(derived dimension) 衍生维度的构建和查询过程&#xff1a; 当有一张事实表和维度表如下&#xff1a; 我们需要以city为维度字段&#xff0c;sum(salary)为度量字段&#xff0c;进行cube的构建。因为定义了city为衍生维度字段…