安卓实用开发小知识 1704

2024-05-16 05:48
文章标签 开发 知识 实用 安卓 1704

本文主要是介绍安卓实用开发小知识 1704,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

安卓实用开发小知识 1704

  • Edittext设置android:focusable=“false”禁止输入之后,再次用setFocusable(true)无法输入,可通过以下方法令edittext重新获得焦点可输入文字:
edittext.setFocusable(true);//--设置edittext是否可以获得焦点edittext.setFocusableInTouchMode(true);//--设置edittext在touch模式下是否可以获得焦点edittext.requestFocus();//--调用该方法给指定的view或者它的子view焦点。如果这个view在isFocusable()方法下返回false,或者isFocusableInTouchMode()方法下返回false,这个view不会真正获得焦点edittext.requestFocusFromTouch();//--调用这个给指定的view或者它的子view焦点。这个特别的变异于(?)requestFocus()的方法会让在这个view被touch时,给view焦点。

参考:http://blog.csdn.net/nonosama0125/article/details/43160349

  • RecyclerView嵌套RecyclerView离开界面再回来时,位置变动博客出处,里面的RecyclerView抢先获取到焦点,导致界面上一到item的顶部,解决办法是在外部的RecyclerView加上:
android:descendantFocusability="blocksDescendants"关于descendantFocusabilitybeforeDescendants:viewgroup会优先其子类控件而获取到焦点afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

参考:http://blog.csdn.net/yingpaixiaochuan/article/details/53190420

  • 安卓USB开发
    1.发现设备
UsbManager usbManager = (UsbManager) context.getSystemService(Context.USB_SERVICE);
Map<String, UsbDevice> usbList = usbManager.getDeviceList();

2.授权

if (!usbManager.hasPermission(usbDevice)) {usbPermissionReceiver = new UsbPermissionReceiver();//申请权限Intent intent = new Intent(ACTION_DEVICE_PERMISSION);PendingIntent mPermissionIntent = PendingIntent.getBroadcast(context, 0, intent, 0);IntentFilter permissionFilter = new IntentFilter(ACTION_DEVICE_PERMISSION);context.registerReceiver(usbPermissionReceiver, permissionFilter);usbManager.requestPermission(usbDevice, mPermissionIntent);}private class UsbPermissionReceiver extends BroadcastReceiver {public void onReceive(Context context, Intent intent) {String action = intent.getAction();if (ACTION_DEVICE_PERMISSION.equals(action)) {synchronized (this) {UsbDevice device = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);if (device.getDeviceName().equals(usbDevice.getDeviceName()) {if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) {//授权成功,在这里进行打开设备操作} else {//授权失败}}}}}}

3.获取输入输出端口

usbInterface=usbDevice.getInterface(0);for (int index = 0; index < usbInterface.getEndpointCount(); index++) {UsbEndpoint point = usbInterface.getEndpoint(index);if (point.getType() == UsbConstants.USB_ENDPOINT_XFER_BULK) {if (point.getDirection() == UsbConstants.USB_DIR_IN) {usbEndpointIn = point;} else if (point.getDirection() == UsbConstants.USB_DIR_OUT) {usbEndpointOut = point;}}}

4 数据传输

usbDeviceConnection = usbManager.openDevice(usbDevice);
//发送数据
int ret = usbDeviceConnection.bulkTransfer(usbEndpointOut, data, data.length, DEFAULT_TIMEOUT);
//接收数据
int inMax = inEndpoint.getMaxPacketSize(); 
ByteBuffer byteBuffer = ByteBuffer.allocate(inMax); 
UsbRequest usbRequest = new UsbRequest(); 
usbRequest.initialize(connection, inEndpoint); 
usbRequest.queue(byteBuffer, inMax); 
if(connection.requestWait() == usbRequest){ byte[] retData = byteBuffer.array(); for(Byte byte1 : retData){ System.err.println(byte1); } 
}

参考:https://juejin.im/post/58eaff05ac502e006c43e114

这篇关于安卓实用开发小知识 1704的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/994051

相关文章

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问

使用Go语言开发一个命令行文件管理工具

《使用Go语言开发一个命令行文件管理工具》这篇文章主要为大家详细介绍了如何使用Go语言开发一款命令行文件管理工具,支持批量重命名,删除,创建,移动文件,需要的小伙伴可以了解下... 目录一、工具功能一览二、核心代码解析1. 主程序结构2. 批量重命名3. 批量删除4. 创建文件/目录5. 批量移动三、如何安

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

基于Python开发PPTX压缩工具

《基于Python开发PPTX压缩工具》在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,不便于传输和存储,所以本文将使用Python开发一个PPTX压缩工具,需要的可以了解下... 目录引言全部代码环境准备代码结构代码实现运行结果引言在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo