android 6.0 USB添加调制解调模式
1.什么是调制解调器
调制解调器(MODEM)是为了解决利用模拟信道传输数字信号而研制的一种通信设备。计算机只能处理数字信号,而现有的一些信道又只能传输模拟信号,为了利用模拟信道传输数字信号,发送端就必须将数字信号转换成模拟信号,将欲发送的数字信号调制到载波上去,而载波信号是模拟信号,可以在模拟信道上传输。然后,接收端再进行相应的处理,恢复传输的数字信号,这一过程就是解调。这样就实现了在模拟信道上传输数字信号的目的,如图1所示。在实际应用中,一般都采用双工通信,所以将调制器(MOdulator)和解调器(DEModulator)装配在一起,就是我们常用的调制解调器(MODEM)。
2.调制解调模式在android开发中有很多用处,但是android原生代码里面没有这种模式,怎么办?那就自己添加吧。接下来就说说怎么添加..........
3.概述
4.代码路径 4.1 UI部分: packages\apps\Settings\src\com\android\settings\deviceinfo\UsbBackend.java packages\apps\Settings\src\com\android\settings\deviceinfo\UsbModeChooserActivity.java 参考其他模式添加相应的模式。 4.2 framework部分: frameworks\base\core\java\android\hardware\usb\UsbManager.java frameworks/base/services/usb/java/com/android/server/usb/UsbDeviceManager.java frameworks/base/services/usb/java/com/android/server/usb/UsbService.java
USB的各种模式在device\qcom\common\rootdir\etc\init.qcom.usb.rc中都有定义。
5. framework: diff --git a/frameworks/base/core/java/android/hardware/usb/UsbManager.java b/frameworks/base/core/java/android/hardware/usb/UsbManager.java index c2afe3e..7e21a8c 100755 --- a/frameworks/base/core/java/android/hardware/usb/UsbManager.java +++ b/frameworks/base/core/java/android/hardware/usb/UsbManager.java @@ -198,7 +198,13 @@ public class UsbManager { * {@hide} */ public static final String USB_FUNCTION_MTP = "mtp"; - + /** + * Name of the DIAG USB function. + * Used in extras for the {@link #ACTION_USB_STATE} broadcast + * + * {@hide} + */ + public static final String USB_FUNCTION_DIAG = "diag,serial_smd,rmnet_bam"; /** * Name of the PTP USB function. * Used in extras for the {@link #ACTION_USB_STATE} broadcast diff --git a/frameworks/base/services/usb/java/com/android/server/usb/UsbDeviceManager.java b/frameworks/base/services/usb/java/com/android/server/usb/UsbDeviceManager.java index 0ad1f60..c5d0c50 100755 --- a/frameworks/base/services/usb/java/com/android/server/usb/UsbDeviceManager.java +++ b/frameworks/base/services/usb/java/com/android/server/usb/UsbDeviceManager.java @@ -345,7 +345,9 @@ public class UsbDeviceManager { UsbManager.USB_FUNCTION_MTP); boolean ptpEnable = UsbManager.containsFunction(getDefaultFunctions(), UsbManager.USB_FUNCTION_PTP); - if (mtpEnable || ptpEnable) mUsbDataUnlocked = true; + boolean diagEnable = UsbManager.containsFunction(getDefaultFunctions(), + UsbManager.USB_FUNCTION_DIAG); + if (mtpEnable || ptpEnable || diagEnable) mUsbDataUnlocked = true; } String state = FileUtils.readTextFile(new File(STATE_PATH), 0, null).trim(); updateState(state); @@ -468,6 +470,7 @@ public class UsbDeviceManager { + "forceRestart=" + forceRestart); // Try to set the enabled functions. + Slog.d(TAG, "zli########### setEnabledFunctions ok"); final String oldFunctions = mCurrentFunctions; final boolean oldFunctionsApplied = mCurrentFunctionsApplied; if (trySetEnabledFunctions(functions, forceRestart)) { diff --git a/frameworks/base/services/usb/java/com/android/server/usb/UsbService.java b/frameworks/base/services/usb/java/com/android/server/usb/UsbService.java index ccf9c66..b6c01f6 100755 --- a/frameworks/base/services/usb/java/com/android/server/usb/UsbService.java +++ b/frameworks/base/services/usb/java/com/android/server/usb/UsbService.java @@ -312,6 +312,7 @@ public class UsbService extends IUsbManager.Stub { case UsbManager.USB_FUNCTION_MIDI: case UsbManager.USB_FUNCTION_MTP: case UsbManager.USB_FUNCTION_PTP: + case UsbManager.USB_FUNCTION_DIAG: case UsbManager.USB_FUNCTION_RNDIS: case UsbManager.USB_FUNCTION_CHARGING: return true;
package: diff --git a/packages/apps/Settings/res/values-zh-rCN/strings.xml b/packages/apps/Settings/res/values-zh-rCN/strings.xml index 98221eb..9c2aae6 100755 --- a/packages/apps/Settings/res/values-zh-rCN/strings.xml +++ b/packages/apps/Settings/res/values-zh-rCN/strings.xml @@ -2530,6 +2530,8 @@
vendor: diff --git a/vendor/qcom/proprietary/qrdplus/globalization/multi-language/res-overlay/packages/apps/Settings/res/values-zh-rCN/strings.xml b/vendor/qcom/proprietary/qrdplus/globalization/multi-language/res-overlay/packages/apps/Settings/res/values-zh-rCN/strings.xml index c5f1bd5..bf271fe 100755 --- a/vendor/qcom/proprietary/qrdplus/globalization/multi-language/res-overlay/packages/apps/Settings/res/values-zh-rCN/strings.xml +++ b/vendor/qcom/proprietary/qrdplus/globalization/multi-language/res-overlay/packages/apps/Settings/res/values-zh-rCN/strings.xml @@ -2464,6 +2464,8 @@
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
