热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AndroidFramework常见解决方案(14)修改默认usb连接模式为MTP模式

1原理AndroidPQ:找到UsbDeviceManager,这里在finishBoot(也就是启动后)设置usb模式为MTP模式&#

1 原理

Android P Q:找到UsbDeviceManager,这里在finishBoot(也就是启动后) 设置usb模式为 MTP模式,同时在处理消息时如果为默认模式NONE则将其更改为MTP模式。

2 修改方案(Android P Q)

修改文件为:frameworks/base/services/usb/java/com/android/server/usb/UsbDeviceManager.java,修改内容为:

//...//1 消息处理部分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 disconnectedif (!mScreenLocked&& mScreenUnlockedFunctions != UsbManager.FUNCTION_NONE) {setScreenUnlockedFunctions();} else {//这里将默认值UsbManager.FUNCTION_NONE改为UsbManager.FUNCTION_MTP//setEnabledFunctions(UsbManager.FUNCTION_NONE, false);setEnabledFunctions(UsbManager.FUNCTION_MTP, false);}}updateUsbFunctions();} else {mPendingBootBroadcast = true;}break;//...}
//...
}//2 finishboot部分protected void finishBoot() {if (mBootCompleted && mCurrentUsbFunctionsReceived && mSystemReady) {if (mPendingBootBroadcast) {updateUsbStateBroadcastIfNeeded(getAppliedFunctions(mCurrentFunctions));mPendingBootBroadcast = false;}if (!mScreenLocked&& mScreenUnlockedFunctions != UsbManager.FUNCTION_NONE) {setScreenUnlockedFunctions();} else {//这里将默认值UsbManager.FUNCTION_NONE改为UsbManager.FUNCTION_MTP//setEnabledFunctions(UsbManager.FUNCTION_NONE, false);setEnabledFunctions(UsbManager.FUNCTION_MTP, false);}if (mCurrentAccessory != null) {mUsbDeviceManager.getCurrentSettings().accessoryAttached(mCurrentAccessory);}updateUsbNotification(false);updateAdbNotification(false);updateUsbFunctions();}}

 


推荐阅读
  • Android native层服务例子Bp和Bn
    转入android阵地,被各种权限所阻挠,app写个jni各种没有权限,只能开个native服务,本来android的服务& ... [详细]
  • 找到:frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\Phon ... [详细]
  • Androidgraphics:Howanalertwindowisdisplayed?一、initilizationanddatastructure.AlertDialoginh ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • PHP中的单例模式与静态变量的区别及使用方法
    本文介绍了PHP中的单例模式与静态变量的区别及使用方法。在PHP中,静态变量的存活周期仅仅是每次PHP的会话周期,与Java、C++不同。静态变量在PHP中的作用域仅限于当前文件内,在函数或类中可以传递变量。本文还通过示例代码解释了静态变量在函数和类中的使用方法,并说明了静态变量的生命周期与结构体的生命周期相关联。同时,本文还介绍了静态变量在类中的使用方法,并通过示例代码展示了如何在类中使用静态变量。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 通过uni.getSystemInfoSync()可以同步获取系统信息,其中platform是获取客户端平台的switch(uni.getSystemInfoSyn ... [详细]
  • 逆向工具之unidbg(在pc端模拟执行so文件中的函数)
      昨天在逆向某App的时候,发现有个加密工具类中的native方法是用C语言编写的,隐藏在so文件中。某大佬推荐逆向工具unidbg,能在pc端直接调用so文件中的函数,最终成功 ... [详细]
  • 转载自http:blog.csdn.netzhifeiyu2008articledetails8829637打开Java的JAR文件我们经常可以看到文件中包含着一个META-INF ... [详细]
  • android在类中将布局文件指定为,Android中将布局文件/View添加至窗口过程分析
    本文主要内容是讲解一个视图View或者一个ViewGroup对象是如何添加至应用程序窗口中的。下文中提到的窗口可泛指我们能看到的界面,包括一个Activity呈现的界 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • CentOS7系统目录LINUX有四种基本文件系统类型普通文件:如文本文件、C语言元代码、SHELL脚本、二进制的可执行文件等,可用cat、less、 ... [详细]
  • 由引起的bug~
    编程经验:一个由引起的bug~文章一 转自:http:www.mamicode.cominfo-detail-506772.html1.问题描述最近遇到一个莫 ... [详细]
author-avatar
yolo_bean
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有