打开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. ContentResolverresolver=mContext.getContentResolver();
  3. resolver.registerContentObserver(Settings.Secure.getUriFor(
  4. Settings.Secure.ADB_ENABLED),false , this );
  5. update();
  6. }
  7. @Override public void onChange( boolean selfChange){
  8. update();
  9. }
  10. public void update(){
  11. ContentResolverresolver=mContext.getContentResolver();
  12. mAdbEnabled=Settings.Secure.getInt(resolver,
  13. Settings.Secure.ADB_ENABLED,0 )!= 0 ;
  14. updateAdbNotification();
  15. }


通过分析代码,我们可以实现用程序自动打开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调试自动打开了。

更多相关文章

  1. Android系统启动执行jar程序
  2. Android应用程序执行流程
  3. Android SSL 过程记录(证书的生成+例子代码)
  4. Android MVP 一行代码轻松解决框架替换
  5. 【Android优化】去掉屏幕上方应用程序的名称或标题栏
  6. Android基础之应用程序组件
  7. Android SDK 源代码关联Eclipse
  8. Android中framework层下添加aidl编译说程序包不存在

随机推荐

  1. 基于树莓派的 Android(安卓)Things 开发
  2. android关于百度地图显示网格问题
  3. Android系列之网络(二)----获取HTTP请求头
  4. Android运行机制
  5. Mars Android视频教程完整版高清在线观看
  6. Android进阶-Android系统信息与安全机制
  7. ProgressBar(进度条) 分类 Android 基础
  8. Android 属性总结
  9. android 中文 api (64) ―― Scroller
  10. Android Studio 4.0 - 创建新项目