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

用Android代码实现自动打开USB调试

 
阅读更多

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

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

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

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


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


[java] view plaincopy
  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 plaincopy
  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 plaincopy
  1. <uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>   
  2. <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />  

 

分享到:
评论

相关推荐

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

    在实际操作中,有时候可能会遇到设备不被识别的情况,这可能是由于USB线问题、设备USB调试未开启、驱动版本不匹配或是电脑端USB端口问题。此时,检查并排除这些问题有助于解决问题。 总之,Android通用型ADB调试USB...

    Android串口调试助手源码

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

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

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

    android 本地代码成功调试

    5. 设备或模拟器未开启USB调试,或没有正确连接到电脑。 解决这些问题通常需要检查配置,确保所有依赖项已安装并更新到最新版本,同时确保设备与电脑之间的连接正常。如果仍然无法调试,可以尝试查阅官方文档或在线...

    Android代码-ADB 网络调试

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

    Android USB CDC COM通讯程序

    开发者需要实现请求临时权限的逻辑,因为Android系统不会自动将USB访问权限授予应用。 5. **UsbDeviceConnection和UsbEndpoint**: `UsbDeviceConnection`对象代表设备连接,用于打开和关闭设备以及发送控制传输。...

    通过USB进行PC端和Android的数据交互

    1. **开启USB访问权限**:在AndroidManifest.xml中添加USB权限声明,如`&lt;uses-feature android:name="android.hardware.usb.host" /&gt;`,并请求用户在运行时给予相应的权限。 2. **识别并连接USB设备**:使用`...

    android串口调试助手源代码

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

    android无线调试工具

    在Android设备上,开启USB调试后,开发者可以使用ADB(Android Debug Bridge)工具进行调试。无线调试则是将传统的USB连接方式转变为通过WiFi网络进行通信。开发者在设备和电脑上设置好相应的参数后,通过WiFi连接,...

    Android USB Driver

    3. 开发者调试无法开启:在手机的开发者选项中开启USB调试,确保电脑上安装了ADB驱动,并且在adb devices命令中能看到设备。 五、USB驱动的更新与维护 保持USB驱动的最新状态至关重要,因为新的驱动通常修复了旧...

    Android串口测试代码,可以多个串口同时通讯

    "Android串口测试代码,可以多个串口同时通讯"是一个项目,它允许开发者在Android设备上实现与多个串行端口的并发通信。这个项目名为"EZ-SerialPort-master",表明它是一个主分支,可能包含完整的串口通信功能和示例...

    Android USB 串口助手源代码

    【Android USB 串口助手源代码】是一款专为Android设备设计的应用程序,它允许开发者或技术爱好者通过USB接口与外部设备进行串行通信。这款源码对于理解和学习Android平台上的USB通信机制及其与硬件交互的方式非常有...

    使用USB连接摄像头android5.1上补丁

    6. USB配置和权限:在Android设备上使用USB摄像头可能需要用户在设置中开启USB调试,给予应用相应的权限。补丁可能简化了这一过程,或者提供了自动配置的选项。 7. 性能优化:为了改善预览卡顿问题,补丁可能涉及了...

    android usb - dbTest.rar

    综上所述,这个“android usb - dbTest.rar”可能涉及到Android开发中的USB调试、数据库操作、自动化测试等多个方面,对于理解ADB工具的使用和测试流程有重要作用。通过学习和实践其中的内容,开发者可以提升在...

    通过AndroirdAccessory实现两个手机的USB通讯Demo

    这个Demo项目“通过AndroidAccessory实现两个手机的USB通讯Demo”正是展示了如何利用这种模式来实现在两台Android设备间的数据传输。下面将详细讲解Android Accessory模式的工作原理、实现步骤以及如何在这个Demo中...

    Android环境搭建与代码调试

    1. **使用Android Studio的调试工具**: Android Studio内置了强大的调试器,可以在代码中设置断点,通过Step Over、Step Into、Step Out等功能逐步执行代码,观察变量的变化。 2. **Logcat日志**: Android系统提供...

    Android Studio使用USB真机调试详解

    - 如果在运行应用时遇到"No target device found."的错误,可以尝试打开Android Monitor(在新版本中可能被替换为Android Logcat或Profiler),Android Studio通常会自动检测并显示可用的设备。 5. **其他相关调试...

    VC++实现通过adb检测android设备是否连接到usb

    如果没有设备,可能需要提示用户检查USB连接或开启USB调试。 6. **关闭资源**:最后,不要忘记在完成操作后关闭管道和进程。使用CloseHandle函数关闭管道两端和ADB进程。 在这个VC++示例中,"CheckAndroid"可能是...

    Android USBCamera,UVCCamera开发通用库

    1. **USB访问权限**:首先,Android设备需要开启USB调试模式,并在应用中请求`ACCESSORY`或`USB`权限。在Android 6.0及以上版本,还需要动态请求`USE_EXTERNAL_STORAGE`权限,因为相机拍摄的照片和视频会保存在外部...

    安卓Android OTG USB串口通信

    在实际操作中,用户需要先在Android设备上启用USB调试模式,并通过USB数据线连接串口转换器。然后,应用会请求USB访问权限,一旦用户给予权限,应用就能识别出USB设备并建立连接。之后,应用便能通过串口与外部设备...

Global site tag (gtag.js) - Google Analytics