首页 > 其他分享 >Android 8.1 USB连接模式默认为MTP

Android 8.1 USB连接模式默认为MTP

时间:2024-03-28 14:59:19浏览次数:29  
标签:8.1 FUNCTION false USB UsbManager MTP &&

Android 8.1 USB连接模式默认为MTP

最近收到项目需求,要求设备默认的USB连接模式为MTP,具体修改参照如下:

/frameworks/base/services/usb/java/com/android/server/usb/UsbDeviceManager.java

        public void handleMessage(Message msg) {
            switch (msg.what) {
                case MSG_UPDATE_STATE:
                    mConnected = (msg.arg1 == 1);
                    mConfigured = (msg.arg2 == 1);

                    updateUsbNotification(false);
                    updateAdbNotification(false);
                    if (mBootCompleted) {
                        updateUsbStateBroadcastIfNeeded(getAppliedFunctions(mCurrentFunctions));
                    }
                    if ((mCurrentFunctions & UsbManager.FUNCTION_ACCESSORY) != 0) {
                        updateCurrentAccessory();
                    }
                    if (mBootCompleted) {
                        if (!mConnected && !hasMessages(MSG_ACCESSORY_MODE_ENTER_TIMEOUT)
                                && !hasMessages(MSG_FUNCTION_SWITCH_TIMEOUT)) {
                            // restore defaults when USB is disconnected
                            if (!mScreenLocked
                                    && mScreenUnlockedFunctions != UsbManager.FUNCTION_NONE) {
                                setScreenUnlockedFunctions();
                            } else {
-                                setEnabledFunctions(UsbManager.FUNCTION_NONE, false);
+                                setEnabledFunctions(UsbManager.FUNCTION_MTP, true);
                            }
                        }
        protected void finishBoot() {
            if (mBootCompleted && mCurrentUsbFunctionsReceived && mSystemReady) {
                if (mPendingBootBroadcast) {
                    updateUsbStateBroadcastIfNeeded(getAppliedFunctions(mCurrentFunctions));
                    mPendingBootBroadcast = false;
                }
                if (!mScreenLocked
                        && mScreenUnlockedFunctions != UsbManager.FUNCTION_NONE) {
                    setScreenUnlockedFunctions();
                } else {
-                    setEnabledFunctions(UsbManager.FUNCTION_NONE, false);
+                    setEnabledFunctions(UsbManager.FUNCTION_MTP, true);
                }

重新编译验证,修改生效,设备默认的USB连接模式已设为MTP

标签:8.1,FUNCTION,false,USB,UsbManager,MTP,&&
From: https://blog.csdn.net/Jeffries_C/article/details/137056850

相关文章

  • FUSB302BMPX 可编程USB芯片控制器 接口集成电路 302B Type-C Control IC with PD
    FUSB302BMPX是一种可编程的USBType-C控制器,由安森美半导体公司生产。它支撑USBType-C检测,包含衔接和方向,并集成了USBBMC功率输送协议的物理层,可完成高达100W的电源和角色交换。该控制器适用于希望完成DRP/SRC/SNKUSBType-C衔接器的系统规划人员。此外,FUSB302BMPX支撑USB3......
  • 嵌入式LINUX开发系列之基于Radxa zero的usb_gadgetEthnet功能配置
    LINUX系列文章目录第二章嵌入式linux开发之基于Radxazero的usb_gadgetEthnet功能配置文章目录LINUX系列文章目录第二章嵌入式linux开发之基于Radxazero的usb_gadgetEthnet功能配置前言一、usb_gadgetEthnet是什么?二、具体操作1.开发板上电,查询网络信息2.usb_gadge......
  • 【兆易创新GD32H759I-EVAL开发板】USB设备 介绍1
    一、引言在当今数字化快速发展的时代,USB(通用串行总线)作为一种普遍应用的通信接口,在各种电子设备中发挥着不可或缺的作用。它不仅支持高速数据传输,而且支持热插拔,使设备连接更加方便快捷。兆易创新的GD32H7系列微控制器,凭借其卓越的计算性能和丰富的通信功能,为USB设备的开发提......
  • .lastUpdated:The POM for mysql:mysql-connector-java:jar:8.1.0 is missing, no depe
    描述:在IDEA中,出现该类报错,查看本地仓库中项目对应的jar包存在,却无法获取时,可能是文件中生成.lastUpdated文件或有remote.repositories文件导致的。.lastUpdated:在更新maven项目的时候,每一个jar包路径下的_remote.repositories文件都会同setting.xml中设置的仓库地址id......
  • centos7 编译 qemu 8.1.0
    targetx86_64-linux-user的编译参考链接问题解决qemu官方对centos7的编译支持到2021年4月,所以qemu8.1.0的linux-user在centos7上编译不过,官方是不管的。为了编译通过需要自己手动修改qemu的源码,只能修复一些宏参数的缺失,修改的基本思路是:如果在系统中能够找到对应的宏......
  • 拆个七口usbhub
    年前t宝工厂店买过一个,带单独开关和指示灯,外接开发板调试挺方便。不外接电源能有十多兆写入,也够用。想当然地拼夕夕在买两,渣渣,不加供电最多能插一个u盘,写入不到一兆,翻车翻车。不过也不贵,大概一个口一块钱。刚好用atx电源和转接板改了个高功率电源,能输出5v,12v,24v,hub拆了接入5v......
  • Linux系统连接手机USB网络共享后无法联网
    如题,离线安装了ubantu系统的服务器的所有网口都设置了静态ip,通过usb口外接手机usb网络共享后,通过ipaddr命令查看,发现usb0网卡没有拿到ip,通过尝试可以用以下命令解决sudodhclientusb0usb0重新向dhcp服务器请求ip,ipaddr看到获取到ip后可以pingbaidu.com试下,如果还......
  • GP232RNL兼容替代FT232RL/FT232RNL USB转UART桥接控制器芯片低成本方案
    关注过小编的朋友都知道,之前小编有推荐过FT232RL的替代产品GP232RL,软硬件直接兼容,无需做修改。随着产品的更新迭代,后面也出来了升级版GP232RNL,低成本方案,可直接替代FT232RL/FT232RNL,参数无需改动。GP232RNL支持Windows11系统,可以直接替换使用。芯片概述:GP232RNL是一款高度集成......
  • nvm 下载新的Node(V18.19.0)版本,查看npm的版本出现异常Error: Cannot find module '@npm
    异常: 之前下载18.17.1查看npm也有问题ERROR:npmv9.6.7isknownnottorunonNode.jsv18.17.1. 大概意思是npm的版本是 v9.6.7单不能运行在v18.17.1的node上,但是node官网显示v18.17.1版本的node是适配v9.6.7的npm。这就很矛盾 最后找到的解决方案是升级nvm的版本......
  • smtp连接流量
    基于smtp和pop3协议的邮件服务可以说的上是互联网第二大服务,web是第一!所以,有必要分析一下邮件的流量信息下面是具体的案例用户名密码都是base64编码 ......