`
flycomos.lee
  • 浏览: 280450 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用Android代码实现打开USB调试

 
阅读更多

打开Android手机的USB调试对于使用豌豆夹、调试程序等来说很重要。下面说说如何用代码自动打开USB调试。先分析USB调试的相关源代码。

在 packages/apps/Settings/src/com/android /settings/DevelopmentSettings.java 找到关于 USB Debug Enable 的代码:

[java] view plain copy
  1. Settings.Secure.putInt(getContentResolver(), Settings.Secure.ADB_ENABLED,   0  );    

 

此文件中,将根据用户设置将其值保存到 Settings 数据库中。别处将根据其值动态变化做出相应动作

经搜索,在 frameworks/base/services/java/com/android/server/NotificationManagerService.java 中存在利用该值判断是否在状态栏中进行通知。代码如下:

 

别处将根据其值动态变化做出相应动作如状态栏消息提示。

 

[java] view plain copy
  1. void   observe() {    
  2.     ContentResolver resolver = mContext.getContentResolver();    
  3.     resolver.registerContentObserver(Settings.Secure.getUriFor(    
  4.             Settings.Secure.ADB_ENABLED), false  ,   this  );    
  5.     update();    
  6. }    
  7.     
  8. @Override     public     void   onChange(  boolean   selfChange) {    
  9.     update();    
  10. }    
  11.     
  12. public     void   update() {    
  13.     ContentResolver resolver = mContext.getContentResolver();    
  14.     mAdbEnabled = Settings.Secure.getInt(resolver,    
  15.                 Settings.Secure.ADB_ENABLED, 0  ) !=   0  ;    
  16.     updateAdbNotification();    
  17. }    

 


通过分析代码,我们可以实现用程序自动打开usb调试了。

[java] view plain copy
  1. boolean  enableAdb = (Settings.Secure.getInt(getContentResolver(), Settings.Secure.ADB_ENABLED,  0 ) >  0 );  
  2.     if  (!enableAdb) {  
  3.     Settings.Secure.putInt(getContentResolver(), Settings.Secure.ADB_ENABLED, 1 );  
  4.     }  


马上进行运行,会出现异常,通过Logcat可以看到没有权限。android.permission.WRITE_SECURE_SETTINGS是不允许普通程序来执行,必须要有系统的签名或放到

/system/app下。

(1)、在AndroidManifest.xml加上两个权限

[html] view plain copy
  1. < uses-permission   android:name = "android.permission.WRITE_SETTINGS" > </ uses-permission >    
  2. < uses-permission   android:name = "android.permission.WRITE_SECURE_SETTINGS"   />   

 

可以把程序push到/system/app,并对这个apk加上0644的权限,重启手机,可以发现usb调试自动打开了。

分享到:
评论

相关推荐

    Android通用型ADB调试USB设备驱动ADB驱动

    2. 打开设备的开发者选项,启用USB调试模式。通常在“关于手机”中连续点击版本号7次可以找到开发者选项。 3. 连接手机到电脑,Windows会自动尝试查找并安装驱动,但可能无法找到。 4. 在设备管理器中,找到你的设备...

    展讯usb调试驱动

    USB调试是Android开发者选项中的一个功能,它允许开发者通过USB数据线将设备连接到电脑,从而实现对设备的控制和调试。启用这个功能后,开发者可以使用ADB(Android Debug Bridge)工具进行一系列高级操作,如安装未...

    android手机 OTG功能调试usb串口的demo源码程序,可在android studio运行调试

    - 通过分析和调试这些代码,开发者可以了解如何在Android设备上实现OTG功能的USB串口通信。 7. **调试与测试**: - Android Studio提供了强大的调试工具,包括断点、变量查看、线程分析等功能,可以帮助开发者...

    Android串口调试助手源码

    在这个项目中,开发者使用了Android Studio来编写和管理代码,构建和调试串口调试助手应用。 2. **串口通信**:串口通信,也称为串行通信,是计算机与外部设备间的一种低速数据传输方式。在Android平台上,通过Java...

    android使用usb外接摄像头拍照并保存照片

    总之,"android使用usb外接摄像头拍照并保存照片"的实现涉及了Android USB主机模式的使用、USB设备的连接管理、图像数据的读取和处理以及本地存储。通过深入理解这些知识点,开发者可以构建出高效、可靠的USB摄像头...

    Android代码-ADB 网络调试

    **Android代码 - ADB网络调试** ADB(Android Debug Bridge)是Android开发者不可或缺的工具,它允许开发者通过USB或网络在电脑上与Android设备进行通信,进行各种调试操作,如安装应用、运行命令、查看设备日志等...

    android 连接多个usb camera的demo

    一旦获得权限,开发者可以通过`UsbDeviceConnection.open()`打开设备,并使用` UsbDeviceConnection.controlTransfer()`进行设备控制,如设置分辨率、帧率等。 接下来,对于USB摄像头(UVC,Universal Video Class...

    android 本地代码成功调试

    在Android开发过程中,有时我们需要对本地C/C++代码进行调试,这在处理性能优化、系统级功能或使用JNI(Java Native Interface)时尤其重要。本文将详细介绍如何成功地调试Android应用中的本地代码。 首先,确保你...

    Android实现otg或usb通讯,异步串口功能

    在Android平台上实现OTG(On-The-Go)或USB通讯,以及异步串口功能,是许多物联网和嵌入式项目的关键技术。Android系统通过USB Host API和Android开放设备访问框架(ADK)提供了对USB设备的支持,允许开发者直接与...

    USB调试助手

    5. **数据传输**:USB调试助手可以实现手机和电脑之间的文件快速传输,无论是代码、图片还是其他类型的数据,都能轻松搞定。 6. **ADB命令执行**:对于熟悉ADB(Android Debug Bridge)命令的用户,该助手提供了...

    Android UVCCamera USB外接摄像头源码

    使用USB摄像头需要在AndroidManifest.xml中添加`&lt;uses-feature&gt;`标签声明USB主机功能,并请求`android.permission.ACCESS_USB`权限。此外,应用还需要在运行时请求用户授权访问特定的USB设备。 6. **设备枚举和...

    Android多路USB摄像头Demo

    6. **示例代码分析**:虽然"UsbCamDemo"未提供具体代码,一个典型的实现可能包含以下部分:USB设备的枚举和连接、摄像头设备的打开和关闭、图像数据的读取与处理、以及必要的错误处理和资源管理。 7. **测试与调试*...

    android2android-usb.zip

    在Android系统中,USB通信是一个重要的功能,尤其在设备间数据传输、硬件扩展以及设备调试等方面发挥着关键作用。"android2android-usb.zip"这个压缩包文件显然专注于Android设备间的USB连接,利用了Android Open ...

    Android通过USB与PC端双向通信【支持字符、文件】

    在PC端,你需要使用对应的USB库(如libusb或Java的UsbHostAPI)来识别和连接Android设备,然后同样通过打开设备端点进行通信。 总的来说,Android与PC通过USB通信涉及到USB权限、设备监听、设备连接、数据读写等多...

    Android2Android USB Transfer Data

    但本文将重点讨论"Android2Android USB Transfer Data",即使用USB连接来实现在Android设备间的数据传输。这个功能允许用户快速、直接地在不同Android设备之间共享文件、图片和文字,而无需借助第三方应用或网络连接...

    android USB主从设备通讯

    3. 打开USB设备,创建数据流以进行读写操作。 4. 对于文件传输,可以使用输入流和输出流进行大文件的分块传输,以提高效率。文中提到的10MB/s传输速度表明该Demo实现了高效的数据传输。 5. 完成通信后,记得关闭设备...

    usb-serial-for-android

    在Android中,通过USB串口可以实现主机(电脑)与设备(Android手机或平板)间的通信,通常用于数据传输、设备控制或调试。 2. **Android USB API**:Android提供了USB主机模式API,允许应用程序作为USB主机来控制...

    Android USB CDC COM通讯程序

    在这个项目中,"COMDemo"可能是一个包含所有必要代码和资源的工程,用户只需将其导入Android Studio (AS) 并进行编译,即可在Android设备上运行并测试USB CDC COM功能。 1. **Android USB框架**: Android提供了...

    android-PL2303-usb-host

    开发者需要在AndroidManifest.xml文件中添加USB权限,并在代码中实现USB设备的枚举、打开、关闭等操作。 2. **USB主机API**:Android提供了`UsbManager`类来管理USB设备,包括请求设备访问权限、获取设备列表、打开...

    android串口调试助手源代码

    【Android串口调试助手源代码】是一个专门为Android设备设计的应用程序,用于进行串行通信调试。这个源代码是官方提供的,意味着它具有可靠性和稳定性,适用于开发者和爱好者想要深入了解或自定义串口通信功能。 ...

Global site tag (gtag.js) - Google Analytics