打开Android手机的USB调试对于使用豌豆夹、调试程序等来说很重要。下面说说如何用代码自动打开USB调试。先分析USB调试的相关源代码。
在 packages/apps/Settings/src/com/android
/settings/DevelopmentSettings.java 找到关于 USB Debug Enable 的代码:
-
Settings.Secure.putInt(getContentResolver(), Settings.Secure.ADB_ENABLED,
0
);
此文件中,将根据用户设置将其值保存到 Settings 数据库中。别处将根据其值动态变化做出相应动作
经搜索,在 frameworks/base/services/java/com/android/server/NotificationManagerService.java 中存在利用该值判断是否在状态栏中进行通知。代码如下:
别处将根据其值动态变化做出相应动作如状态栏消息提示。
-
void
observe() {
-
ContentResolver resolver = mContext.getContentResolver();
-
resolver.registerContentObserver(Settings.Secure.getUriFor(
-
Settings.Secure.ADB_ENABLED), false
,
this
);
-
update();
-
}
-
-
@Override
public
void
onChange(
boolean
selfChange) {
-
update();
-
}
-
-
public
void
update() {
-
ContentResolver resolver = mContext.getContentResolver();
-
mAdbEnabled = Settings.Secure.getInt(resolver,
-
Settings.Secure.ADB_ENABLED, 0
) !=
0
;
-
updateAdbNotification();
-
}
通过分析代码,我们可以实现用程序自动打开usb调试了。
-
boolean
enableAdb = (Settings.Secure.getInt(getContentResolver(), Settings.Secure.ADB_ENABLED,
0
) >
0
);
-
if
(!enableAdb) {
-
Settings.Secure.putInt(getContentResolver(), Settings.Secure.ADB_ENABLED, 1
);
-
}
马上进行运行,会出现异常,通过Logcat可以看到没有权限。android.permission.WRITE_SECURE_SETTINGS是不允许普通程序来执行,必须要有系统的签名或放到
/system/app下。
(1)、在AndroidManifest.xml加上两个权限
-
<
uses-permission
android:name
=
"android.permission.WRITE_SETTINGS"
>
</
uses-permission
>
-
<
uses-permission
android:name
=
"android.permission.WRITE_SECURE_SETTINGS"
/>
可以把程序push到/system/app,并对这个apk加上0644的权限,重启手机,可以发现usb调试自动打开了。
分享到:
相关推荐
2. 打开设备的开发者选项,启用USB调试模式。通常在“关于手机”中连续点击版本号7次可以找到开发者选项。 3. 连接手机到电脑,Windows会自动尝试查找并安装驱动,但可能无法找到。 4. 在设备管理器中,找到你的设备...
USB调试是Android开发者选项中的一个功能,它允许开发者通过USB数据线将设备连接到电脑,从而实现对设备的控制和调试。启用这个功能后,开发者可以使用ADB(Android Debug Bridge)工具进行一系列高级操作,如安装未...
- 通过分析和调试这些代码,开发者可以了解如何在Android设备上实现OTG功能的USB串口通信。 7. **调试与测试**: - Android Studio提供了强大的调试工具,包括断点、变量查看、线程分析等功能,可以帮助开发者...
在这个项目中,开发者使用了Android Studio来编写和管理代码,构建和调试串口调试助手应用。 2. **串口通信**:串口通信,也称为串行通信,是计算机与外部设备间的一种低速数据传输方式。在Android平台上,通过Java...
总之,"android使用usb外接摄像头拍照并保存照片"的实现涉及了Android USB主机模式的使用、USB设备的连接管理、图像数据的读取和处理以及本地存储。通过深入理解这些知识点,开发者可以构建出高效、可靠的USB摄像头...
**Android代码 - ADB网络调试** ADB(Android Debug Bridge)是Android开发者不可或缺的工具,它允许开发者通过USB或网络在电脑上与Android设备进行通信,进行各种调试操作,如安装应用、运行命令、查看设备日志等...
一旦获得权限,开发者可以通过`UsbDeviceConnection.open()`打开设备,并使用` UsbDeviceConnection.controlTransfer()`进行设备控制,如设置分辨率、帧率等。 接下来,对于USB摄像头(UVC,Universal Video Class...
在Android开发过程中,有时我们需要对本地C/C++代码进行调试,这在处理性能优化、系统级功能或使用JNI(Java Native Interface)时尤其重要。本文将详细介绍如何成功地调试Android应用中的本地代码。 首先,确保你...
在Android平台上实现OTG(On-The-Go)或USB通讯,以及异步串口功能,是许多物联网和嵌入式项目的关键技术。Android系统通过USB Host API和Android开放设备访问框架(ADK)提供了对USB设备的支持,允许开发者直接与...
5. **数据传输**:USB调试助手可以实现手机和电脑之间的文件快速传输,无论是代码、图片还是其他类型的数据,都能轻松搞定。 6. **ADB命令执行**:对于熟悉ADB(Android Debug Bridge)命令的用户,该助手提供了...
使用USB摄像头需要在AndroidManifest.xml中添加`<uses-feature>`标签声明USB主机功能,并请求`android.permission.ACCESS_USB`权限。此外,应用还需要在运行时请求用户授权访问特定的USB设备。 6. **设备枚举和...
6. **示例代码分析**:虽然"UsbCamDemo"未提供具体代码,一个典型的实现可能包含以下部分:USB设备的枚举和连接、摄像头设备的打开和关闭、图像数据的读取与处理、以及必要的错误处理和资源管理。 7. **测试与调试*...
在Android系统中,USB通信是一个重要的功能,尤其在设备间数据传输、硬件扩展以及设备调试等方面发挥着关键作用。"android2android-usb.zip"这个压缩包文件显然专注于Android设备间的USB连接,利用了Android Open ...
在PC端,你需要使用对应的USB库(如libusb或Java的UsbHostAPI)来识别和连接Android设备,然后同样通过打开设备端点进行通信。 总的来说,Android与PC通过USB通信涉及到USB权限、设备监听、设备连接、数据读写等多...
但本文将重点讨论"Android2Android USB Transfer Data",即使用USB连接来实现在Android设备间的数据传输。这个功能允许用户快速、直接地在不同Android设备之间共享文件、图片和文字,而无需借助第三方应用或网络连接...
3. 打开USB设备,创建数据流以进行读写操作。 4. 对于文件传输,可以使用输入流和输出流进行大文件的分块传输,以提高效率。文中提到的10MB/s传输速度表明该Demo实现了高效的数据传输。 5. 完成通信后,记得关闭设备...
在Android中,通过USB串口可以实现主机(电脑)与设备(Android手机或平板)间的通信,通常用于数据传输、设备控制或调试。 2. **Android USB API**:Android提供了USB主机模式API,允许应用程序作为USB主机来控制...
在这个项目中,"COMDemo"可能是一个包含所有必要代码和资源的工程,用户只需将其导入Android Studio (AS) 并进行编译,即可在Android设备上运行并测试USB CDC COM功能。 1. **Android USB框架**: Android提供了...
开发者需要在AndroidManifest.xml文件中添加USB权限,并在代码中实现USB设备的枚举、打开、关闭等操作。 2. **USB主机API**:Android提供了`UsbManager`类来管理USB设备,包括请求设备访问权限、获取设备列表、打开...
【Android串口调试助手源代码】是一个专门为Android设备设计的应用程序,用于进行串行通信调试。这个源代码是官方提供的,意味着它具有可靠性和稳定性,适用于开发者和爱好者想要深入了解或自定义串口通信功能。 ...