[Android-Frameworks] Modify the implementation of USB in Android Frameworks

本文介绍如何在Android系统中增加新的USB模式,包括修改资源文件、设置偏好项、定义USB模式及实现新功能的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Modify Android Usb Framework

  • PART 1
-
path:           vendor/BYD/app/Settings/res/values/strings.xml
purpose:      增加一项新usb mode
detail:          需要支持多国语言
*
    <!-- Storage setting.  Title for NEW checkbox [CHAR LIMIT=30]-->
    <string name="usb_NEW_title">NEW device (NEW)</string>
    <!-- Storage setting.  Summary for NEW checkbox [CHAR LIMIT=NONE]-->
    <string name="usb_NEW_summary">NEW NEW NEW  </string>
*

-
purpose: Add preference item to PreferenceScreen
path: packages/appsSettings/res/xml/usb_settings.xml
*
    <CheckBoxPreference
        android:key="usb_NEW"
        android:title="@string/usb_NEW_title"
        android:summary="@string/usb_NEW_summary"
        />
*
-

-
PURPOSE: Add New mode to UsbSettings
PATH: packages/apps/Settings/src/com/android/settings/deviceinfo/UsbSettings.java
IMPORTANT:
     - 设定new mode为 rndis模式
     - UsbSettings在接收到来自UsbDeviceManager的广播,会调用getDefaultFunction()
       更新当前(current)enabled function,注意不是default functions
PATCH:
*
+48     private static final String KEY_NEW = "usb_NEW";
+53     private CheckBoxPreference mNEW;
+78     mNEW = (CheckBoxPreference)root.findPreference(KEY_NEW);
+115     else if (UsbManager.USB_FUNCTION_RNDIS.equals(function)) {
            mMtp.setChecked(false);
            mPtp.setChecked(false);
            mNEW.setChecked(true);
        }
+112     mNEW.setChecked(false);
+116     mNEW.setChecked(false);
+124     mNEW.setChecked(false);
+132     mNEW.setChecked(true);
+137     mNEW.setChecked(false);
+165     else if (preference == mNEW) {
            mUsbManager.setCurrentFunction(UsbManager.USB_FUNCTION_RNDIS, true);
            updateToggles(UsbManager.USB_FUNCTION_RNDIS);
        }
*
-


-
PURPOSE:    About defining Usb Mode in the UsbManager.java
PATH:          frameworks/base/core/java/android/hardware/usb/UsbManager.java
NOTE:          If you need to add a new usb Mode, you must add your usb mode to UsbManager.java. like
                   
                    public static final String USB_FUNCTION_NEW = "NEW";
                   
                    Then you need implementing your new mode in UsbServer(UsbDeviceManager, init.rc, Driver)
-

-
PURPOSE:     Debugging UsbDeviceManager
PATH:          frameworks/base/core/java/android/hardware/usb/UsbDeviceManager.java
NOTE:         
              
-

  • PART 2: About setup MTP driver environment


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值