在 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. voidobserve(){
  2. ContentResolverresolver=mContext.getContentResolver();
  3. resolver.registerContentObserver(Settings.Secure.getUriFor(
  4. Settings.Secure.ADB_ENABLED),false,this);
  5. update();
  6. }
  7. @OverridepublicvoidonChange(booleanselfChange){
  8. update();
  9. }
  10. publicvoidupdate(){
  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. booleanenableAdb=(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-permissionandroid:name="android.permission.WRITE_SETTINGS"></uses-permission>
  2. <uses-permissionandroid:name="android.permission.WRITE_SECURE_SETTINGS"/>

更多相关文章

  1. Android的文本编解码工具类
  2. android典型代码系列(一)------android调试
  3. Error:(15) No resource identifier found for attribute 'round
  4. Android(安卓)动画框架代码分析
  5. Android(安卓)多媒体扫描过程(Android(安卓)Media Scanner Proces
  6. android intent
  7. Android(安卓)7.0 app代码修改抓包
  8. Android学习札记22:ThumbnailUtils
  9. Dialog设置全屏

随机推荐

  1. android ScreenshotClient 接口截屏幕
  2. Android应用程序创建桌面快捷方式
  3. Android(安卓)广播 使用方法
  4. android makefile message output
  5. Gradle: The New Android(安卓)Build Sys
  6. android:file
  7. Android如何引用其他工程
  8. 【Mark】Android(安卓)Basic_Activity Em
  9. android 对话框大全
  10. android 五种布局模式