android 8.1 disable unsupported sensor

这篇具有很好参考价值的文章主要介绍了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 list
        for (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 applications
        synchronized (mAvailableFeatures) {
            final FeatureInfo feat = mAvailableFeatures.get(name);
            if (feat == null) {
                return false;
            } else {
                
                    //remove proximity sensor feature
                    if(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,android文章来源地址https://www.toymoban.com/news/detail-738001.html

到了这里,关于android 8.1 disable unsupported sensor的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 我的NPI项目之Android Camera (二) -- 核心部件之 Camera Sensor

    说到Camera模组,我们比较关心的是用的什么样的sensor? sensor的分辨率多少,sensor的像素多大,sensor是哪家生产的等等一些问题。今天,我们就穿越时间,将sensor的历史扒一扒。 Wikipedia先看一下:history of Camera Camera的历史大体可以分为三大部分 : 核心部件Sensor : Sensor是什么

    2024年02月19日
    浏览(49)
  • Android | Sensor.TYPE_ORIENTATION被废弃后的解决办法

    Sensor.TYPE_ORIENTATION 常数在 API 8 中已弃用,官方推荐使用 SensorManager.getOrientation() 替代。关于 Orientation Sensor(被弃用的方向传感器) 在官方文档中的概述里有这样一句话: The orientation sensor is software-based and derives its data from the accelerometer and the geomagnetic field sensor. (方向传感器

    2023年04月08日
    浏览(35)
  • Android高通 8.1 老化apk打开摄像头花屏问题

    1、最近由于公司VR 3D系统要做双Camera老化测试apk,同时老化4小时需要轮询切换二个摄像头,保证后面camera标定精度数据更准确。 2、一开始我尝试用之前方案移植过去然后同时打开双摄像头 突然发现花屏 如下图所示 3、于是一第一时间想到是不是分辨率不兼容或者 硬件Came

    2024年02月09日
    浏览(38)
  • Android Studio Unsupported Java

    问题:升级 Android Studio Flamingo 出现如下报错信息 解决方法:File - Settings - Build, Execution, Deployment - Build Tools - Gradle 将 Gradle JDK 修改为本机安装的 JDK 版本即可,如: JDK-11.0.15

    2024年02月11日
    浏览(38)
  • 【笔记】Disable APN 禁用数据连接的逻辑(Android & KaiOS)

    通过OTA/OMADM 运营商服务器可以下发消息实现disable APN,从而影响Data PDN建立。APN被disable了会导致无法正常上网。 在Android 和 KaiOS 系统实现上有区别,不过都是通过carrier_enabled 这类字段实现判断控制。 Android:上层 Telephony 根据APN carrier_enabled 值判断是否下发PDN KaiOS:上层 gec

    2024年01月23日
    浏览(35)
  • 【解决】android设备有root权限,执行“adb disable-verity”命令报错“verity cannot be disabled/enabled - USER build”

    这个错误提示意味着你的设备是使用USER版本的固件构建的,这个版本不允许禁用verity功能。但是,你可以尝试以下步骤来解决问题: 确认你的设备是否已经root,可以通过执行“adb root”命令来检查。 确认你的设备是否已经启用了开发者选项,可以在设备设置中找到“开发者

    2024年02月03日
    浏览(78)
  • Android Studio Error “Unsupported class file major version 61“---异常信息记录

    问题出在JAVA 17上,并且使用的Gradle JDK是:Android Studio java home版本17.0.1将其更改为:Android Studio默认JDK版本11.0.10 即可解决 操作步骤 1 2 3

    2024年01月23日
    浏览(41)
  • 开发Android原生插件,引入自己打的jar报,编译报 Unsupported class file major version 61

    “Unsupported class file major version 61” 错误的原因是由于你自己大的jar包当时是用的Java 17打包的,因为在 Java 中,每个主要版本都有一个对应的 major version 值。例如,Java 8 的 major version 值为 52,Java 9 的 major version 值为 53,以此类推。Java 17 的 major version 值为 61。 解决这个问题,

    2024年02月09日
    浏览(48)
  • Android Studio如何解决 Unsupported Modules Detected: Compilation is not supported for following modules

    目录 前言 一、引起原因 二、解决方法 三、最总解决大招 四、我们处理方法 五、更多资源         在使用Android Studio进行应用程序开发时,有时我们可能会遇到\\\"Unsupported Modules Detected\\\"错误。这个错误提示意味着某些模块无法进行编译,可能会导致应用程序无法正常构建和

    2024年04月10日
    浏览(42)
  • Android项目:如何确定Java版本兼容的gradle版本(Unsupported Java. Your build is currently configured to use Java……)

    在配置从github上下载的项目时,配置的过程中出现错误: 解决方法概括:根据链接所提供的Java和gradle对应的兼容版本,调整Java或是gradle版本 问题所在:Java版本需要和gradle版本兼容,调整版本即可 我们可以在这个链接中查看对应Java版本所兼容的gradle版本。 2023.8.11截图版本

    2024年02月08日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包