当前位置: 首页 > news >正文

android 8.1 disable unsupported sensor

如果device不支持某种sensor,可以在android/frameworks/base/core/java/android/hardware/SystemSensorManager.java里将其disabled掉。以disable proximity sensor为例。

public SystemSensorManager(Context context, Looper mainLooper) {synchronized(sLock) {if (!sNativeClassInited) {sNativeClassInited = true;nativeClassInit();}}mMainLooper = mainLooper;mTargetSdkLevel = context.getApplicationInfo().targetSdkVersion;mContext = context;mNativeInstance = nativeCreate(context.getOpPackageName());// initialize the sensor listfor (int index = 0;;++index) {Sensor sensor = new Sensor();if (!nativeGetSensorAtIndex(mNativeInstance, sensor, index)) break; //disable p_sensor solution: Remove proximity sensor from sensor list.if ((sensor != null) && sensor.getType() == Sensor.TYPE_PROXIMITY){Log.i(TAG,"skip proximity sensor");continue;}mFullSensorsList.add(sensor);mHandleToSensor.put(sensor.getHandle(), sensor);}}

就是将p_sensor 从mFullSensorsList中移出。这一步基本上已经work了(SensorManager#getSensorList(8)得不到p_sensor的讯息),但是如果你的code还需要通过CTS测试,那么最好在android/frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java的hasSystemFeature方法里做remove proximity sensor feature

public boolean hasSystemFeature(String name, int version) {// allow instant applicationssynchronized (mAvailableFeatures) {final FeatureInfo feat = mAvailableFeatures.get(name);if (feat == null) {return false;} else {//remove proximity sensor featureif(name.equals("android.hardware.sensor.proximity")){Log.w(TAG, "skip standard  proximity sensor");return false;}return feat.version >= version;}}}

这样一来PackageManager#hasSystemFeature(android.hardware.sensor.proximity) return false。

可用命令adb shell pm list features来检查device都support 那些功能。

或者尝试删除frameworks\native\data\etc下相关的配置文件

相关文章:

android 8.1 disable unsupported sensor

如果device不支持某种sensor,可以在android/frameworks/base/core/java/android/hardware/SystemSensorManager.java里将其disabled掉。以disable proximity sensor为例。 public SystemSensorManager(Context context, Looper mainLooper) {synchronized(sLock) {if (!sNativ…...

二、类与对象(一)

1 面向过程和面向对象初步认识 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。以洗衣服为例,通常洗衣服会经历以下过程: 而C是基于面向对象的,关注的是对象&#xff0c…...

写给所有的程序员,或者努力生活的你。

朋友们,好好休息,意味着好好锻炼,好好睡觉,好好学习,学习可以是功利的,需要有规划的,有执行能力,有反馈奖励机制的,也可以无用之用方为大用(比如take shit的时…...

pytorch 笔记:GRU

1 介绍 对于输入序列中的每个元素,每一层都计算以下函数: ht​ 是t时刻 的隐藏状态xt​ 是t时刻 的输入ht−1​ 是 t-1时刻 同层的隐藏状态或 0时刻 的初始隐藏状态rt​,zt​,nt​ 分别是重置门、更新门和新门。σ 是 sigmoid 函数∗ 是 Hadamard 乘积。…...

Kubernetes - Ingress HTTP 升级 HTTPS 配置解决方案(新版本v1.21+)

之前我们讲解过 Kubernetes - Ingress HTTP 搭建解决方案,并分别提供了旧版本和新版本。如果连 HTTP 都没搞明白的可以先去过一下这两篇 Kubernetes - Ingress HTTP 负载搭建部署解决方案_放羊的牧码的博客-CSDN博客Kubernetes - Ingress HTTP 负载搭建部署解决方案…...

Verilog:写流水灯时遇到的问题

module flow_led(input sys_clk, //系统时钟50Mhz 周期0.02nsinput sys_rst_n, //系统异步复位&#xff0c;低电平有效output reg [3:0] led ); reg [24:0] cnt;//计数器计时0.5s250000000*0.02ns always(posedge sys_clk or negedge sys_rst_n)beginif(!sys_rst_n)cnt <…...

操作系统第四章-存储器管理

4.1 内存的基本知识 4.1.1 逻辑地址和物理地址 逻辑地址又称为相对地址 物理地址又称为绝对地址 一. 逻辑地址 内存中有多个进程,相对地址是相对于进程的起始地址而言的地址. 二.物理地址 绝对地址是在整个内存下的地址 4.2 程序的装入和链接 引入:用户程序要在系统中运…...

org.springframework.cloud:spring-cloud-starter-openfeign:jar is missing详解

openfeign无法导入的问题 我感觉最近带的好几个新人在搭建springCloud基础框架的时候&#xff0c;会犯一个非常小的错误&#xff0c;导致进度卡住了。 这个错误就是Feign导入的错误&#xff1a; ‘dependencies.dependency.version’ for org.springframework.cloud:spring-c…...

Netty第一部

一、select和epoll原理分析 外设设备网卡、鼠标、键盘等通过总线写到内存中&#xff0c;中间就有DMA拷贝&#xff0c;操作系统怎么知道内存中有数据了&#xff0c;这就需要操作系统通过中断机制确定&#xff0c;如果有中断信号过来&#xff0c;cpu会首先打断用户程序执行&…...

【设计模式】第11节:结构型模式之“装饰器模式”

一、简介 装饰器模式主要解决继承关系过于复杂的问题&#xff0c;通过组合来替代继承。它主要的作用是给原始类添加增强功能。这也是判断是否该用装饰器模式的一个重要的依据。除此之外&#xff0c;装饰器模式还有一个特点&#xff0c;那就是可以对原始类嵌套使用多个装饰器。…...

Spire.doc读取模板文档,并在书签处插入内容

在书签位置插入文字 //加载模板文档 Document document new Document(Server.MapPath("~/File/评价结果.doc")); //创建书签导航器 BookmarksNavigator bn new BookmarksNavigator(document); //添加一个section到文档 Section newSec document.AddSection(); …...

性能测试实施流程,5个阶段给老板安排的明明白白!

性能测试分为5个阶段&#xff0c;分别是【需求调研阶段】→【测试准备阶段】→【测试执行阶段】→【测试报告阶段】→【测试总结阶段】。 1、需求调研阶段 需求调研分为两个步骤进行&#xff1a;需求调研、需求分析 需求调研 需求调研工作由性能测试实施人员牵头负责&#…...

【教程】R语言生物群落(生态)数据统计分析与绘图

查看原文>>>R语言生物群落&#xff08;生态&#xff09;数据统计分析与绘图实践 暨融合《R语言基础》、《tidyverse数据清洗》、《多元统计分析》、《随机森林模型》、《回归及混合效应模型》、《结构方程模型》、《统计结果作图》七合一版本方案 R 语言作的开源、自…...

数据库-用户权限管理

创建用户&#xff1a; create user testlocalhost identified by 123456; create user 创建用户的固定开头 testlocalhost test为用户名&#xff0c; localhost:新建用户可以在哪些主机上登录&#xff0c;即使可以使用IP地址&#xff0c;网段主机名都可以 identified by 1…...

十一、W5100S/W5500+RP2040树莓派Pico<ARP 地址解析>

文章目录 1 前言2 简介2 .1 什么是ARP&#xff1f;2.2 ARP的优点2.3 ARP工作原理2.4 ARP应用场景 3 WIZnet以太网芯片4 ARP网络设置示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意事项6 相关链接 1 前言 随着网络安全越来越受到重…...

可以直接在线制作电子画册的网站

​随着互联网技术的发展&#xff0c;越来越多的人开始使用在线工具来制作电子画册。今天&#xff0c;小编就来介绍一款可以直接在线制作电子画册的网站&#xff0c;让你的电子画册更加精美、个性化和实用。 1.首先点击FLBOOK在线制作制作电子杂志平台 2.点击开始制作&#xff0…...

SortableJS:vuedraggable实现元素拖放排序

文档&#xff1a;https://sortablejs.github.io/Sortable/github&#xff1a;https://github.com/SortableJS/SortableVue2: https://github.com/SortableJS/Vue.DraggableVue3: https://github.com/SortableJS/vue.draggable.nextnpm https://www.npmjs.com/package/vuedragga…...

跟着Nature Communications学作图:纹理柱状图+添加显著性标签!

&#x1f4cb;文章目录 复现图片设置工作路径和加载相关R包读取数据集数据可视化计算均值和标准差方差分析组间t-test 图a可视化过程图b可视化过程合并图ab 跟着「Nature Communications」学作图&#xff0c;今天主要通过复刻NC文章中的一张主图来巩固先前分享过的知识点&#…...

88. 合并两个有序数组、Leetcode的Python实现

博客主页&#xff1a;&#x1f3c6;李歘歘的博客 &#x1f3c6; &#x1f33a;每天不定期分享一些包括但不限于计算机基础、算法、后端开发相关的知识点&#xff0c;以及职场小菜鸡的生活。&#x1f33a; &#x1f497;点关注不迷路&#xff0c;总有一些&#x1f4d6;知识点&am…...

视频列表:点击某个视频进行播放,其余视频全部暂停(同时只播放一个视频)

目录 需求实现原理实现代码页面展示 需求 视频列表&#xff1a;点击某个视频进行播放&#xff0c;其余视频全部暂停&#xff08;同时只播放一个视频&#xff09; 实现原理 在 video 标签添加 自定义属性 id (必须唯一)给每个 video 标签 添加 play 视频播放事件播放视频时&…...

温差发电驱动轻型电动车:热电模块与催化燃烧器的系统集成实践

1. 项目概述&#xff1a;用温差发电驱动轻型电动车最近在琢磨一个挺有意思的玩意儿&#xff1a;能不能给那些轻型的电动车&#xff0c;比如高尔夫球车、园区巡逻车或者小型载货三轮&#xff0c;换上一套不一样的“心脏”&#xff1f;传统的方案&#xff0c;要么背着一大块死沉死…...

RISC-V模拟器终极指南:如何快速掌握处理器可视化调试

RISC-V模拟器终极指南&#xff1a;如何快速掌握处理器可视化调试 【免费下载链接】Ripes A graphical processor simulator and assembly editor for the RISC-V ISA 项目地址: https://gitcode.com/gh_mirrors/ri/Ripes RISC-V模拟器Ripes是一款强大的图形化处理器仿真…...

终极Windows Office激活指南:如何一键永久解决系统激活烦恼

终极Windows Office激活指南&#xff1a;如何一键永久解决系统激活烦恼 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows和Office激活问题而烦恼吗&#xff1f;每次重装系统后都要四…...

5个理由告诉你为什么Mermaid Live Editor是图表创作的效率神器

5个理由告诉你为什么Mermaid Live Editor是图表创作的效率神器 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-editor …...

告别折腾!用DKMS一劳永逸管理你的水星MW310UH在Ubuntu 22.04上的驱动

告别折腾&#xff01;用DKMS一劳永逸管理你的水星MW310UH在Ubuntu 22.04上的驱动每次内核更新后都要重新编译无线网卡驱动&#xff1f;这种重复劳动该终结了。对于使用水星MW310UH这类Realtek芯片设备的用户来说&#xff0c;DKMS&#xff08;Dynamic Kernel Module Support&…...

从下载到网页管理:TrueNAS SCALE最新版保姆级安装图文教程(VMware Workstation 17环境)

TrueNAS SCALE在VMware Workstation 17中的全流程部署指南 对于需要在本地环境中快速搭建网络存储测试平台的用户来说&#xff0c;TrueNAS SCALE无疑是一个理想选择。作为TrueNAS家族的最新成员&#xff0c;它不仅继承了传统存储管理系统的稳定性和可靠性&#xff0c;还引入了…...

ML赋能BDI智能体:规划、意图过滤与行动模块的技术融合与实践

1. 项目概述&#xff1a;当经典BDI架构遇上现代机器学习在人工智能领域&#xff0c;构建能够像人一样思考、决策和行动的智能体&#xff08;Agent&#xff09;&#xff0c;一直是研究者们孜孜以求的目标。其中&#xff0c;信念-愿望-意图&#xff08;Belief-Desire-Intention&a…...

别再为乱码头疼了!Linux离线安装LibreOffice 7.5完整指南:从RPM包到完美中文显示

Linux离线安装LibreOffice 7.5终极指南&#xff1a;彻底解决中文乱码难题 在Linux环境下处理中文文档时&#xff0c;字体显示问题就像一场无声的战争——你永远不知道打开文件时会遭遇怎样的"乱码突袭"。特别是对于需要离线安装LibreOffice的用户&#xff0c;这个问题…...

5分钟上手!Linux用户必备的Apple Emoji字体安装教程

5分钟上手&#xff01;Linux用户必备的Apple Emoji字体安装教程 【免费下载链接】apple-emoji-ttf Brings Apples vibrant color emojis to Linux, Windows, and the Web 项目地址: https://gitcode.com/gh_mirrors/ap/apple-emoji-ttf apple-emoji-ttf项目能够为Linux和…...

ARM Trace Buffer扩展与调试同步机制详解

1. ARM Trace Buffer扩展与调试状态同步机制解析在嵌入式系统和处理器架构设计中&#xff0c;调试与追踪技术是开发人员不可或缺的工具。ARM架构通过Trace Buffer Extension&#xff08;TBE&#xff09;提供了强大的指令级执行流追踪能力&#xff0c;其核心原理是通过专用硬件单…...