• Android 设置中增加 OTG 开关以方便调试


    Android 设置中增加 OTG 开关以方便调试

    在开发工作中我们经常可能需要用到USB调试,然而有些设备默认是在host模式,我们知道host之间是不能互联的,所以如果这时我们想要使用USB调试的话,需要将设备进行host与devices模式之间的切换,将模式由host切到devices,所以这时候如果我们有一个可以控制两种模式切换的 OTG 按钮开关的话,那将会对我们的调试工作十分方便,控制设备host与devices模式之间转换的具体功能代码参考如下:

    1. package com.android.settings.accessibility;
    2. import android.content.Context;
    3. import android.provider.Settings;
    4. import android.view.KeyCharacterMap;
    5. import android.view.KeyEvent;
    6. import android.util.Log;
    7. import java.io.BufferedReader;
    8. import java.io.BufferedWriter;
    9. import java.io.FileReader;
    10. import java.io.FileWriter;
    11. import java.io.FileNotFoundException;
    12. import java.io.IOException;
    13. import com.android.settings.Utils;
    14. import com.android.settings.core.TogglePreferenceController;
    15. public class UsbOrOtgPreferenceController extends TogglePreferenceController {
    16. private final String TAG = "UsbOrOtgPreferenceController";
    17. private String ON = "1"; // 1
    18. private String OFF = "0"; // 0
    19. private static final String GPIO_PATH ="devices_host_ctrl_path";
    20. public UsbOrOtgPreferenceController(Context context, String preferenceKey) {
    21. super(context, preferenceKey);
    22. }
    23. @Override
    24. public boolean isChecked() {
    25. return ON.equals(readFile(GPIO_PATH));
    26. }
    27. @Override
    28. public boolean setChecked(boolean isChecked) {
    29. if (isChecked) {
    30. writeFile(ON,GPIO_PATH);
    31. } else {
    32. writeFile(OFF,GPIO_PATH);
    33. }
    34. return true;
    35. }
    36. @Override
    37. public int getAvailabilityStatus() {
    38. return AVAILABLE;
    39. }
    40. private void writeFile(String commod,String Path) {
    41. BufferedWriter bufWriter;
    42. try {
    43. bufWriter = new BufferedWriter(new FileWriter(Path));
    44. bufWriter.write(commod);
    45. bufWriter.close();
    46. } catch (IOException e) {
    47. e.printStackTrace();
    48. }
    49. }
    50. public static String readFile(String Path) {
    51. String result = "0";
    52. BufferedReader bufReader;
    53. try {
    54. bufReader = new BufferedReader(new FileReader(Path));
    55. String text = bufReader.readLine();
    56. result = text.trim();
    57. } catch (FileNotFoundException e) {
    58. e.printStackTrace();
    59. } catch (IOException e) {
    60. e.printStackTrace();
    61. }
    62. return result;
    63. }
    64. }

    重新编译验证,功能生效

  • 相关阅读:
    【HarmonyOS】鸿蒙开发之Stage模型-应用配置文件——第4.2章
    全网最全JAVA面试八股文,终于整理完了
    ADW300物联网电力仪表-ONENET_STUDIO物模型方案操作说明
    向量数据库库Milvus Cloud2.3 运维可靠,秒级故障恢复
    项目埋点实现
    Java的XWPFTemplate word生成列表
    React的Render的简单实现
    电脑重装系统后如何创建睡眠快捷方式
    模拟相册图片切换
    ArcGIS丨SWAT丨农业水土环境及面源污染建模及对农业措施的响应
  • 原文地址:https://blog.csdn.net/Jeffries_C/article/details/134249986