1、访问权限的配置
<!-- 访问internet权限 --> <uses-permission android:name="android.permission.INTERNET"/> <!-- 在SDCard中创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!-- 往SDCard写入数据权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2、MD5加密
public class MD5 { public static String getMD5(String content) { try { MessageDigest digest = MessageDigest.getInstance("MD5"); digest.update(content.getBytes()); return getHashString(digest); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return null; } private static String getHashString(MessageDigest digest) { StringBuilder builder = new StringBuilder(); for (byte b : digest.digest()) { builder.append(Integer.toHexString((b >> 4) & 0xf)); builder.append(Integer.toHexString(b & 0xf)); } return builder.toString(); } }
3、XmlPullParser解析xml文件返回List对象
/* * 根据提供的URL,得到HttpURLConnection的连接,设置超时时间和请求方式 * 使用XMLPullParser解析请求的输入流,循环解析xml,直到文档的结尾 * <?xml version="1.0" encoding="UTF-8"?> <topics> <topic id="1"> <title>西安大雁塔01</title> <image src="http://192.168.173.1:8081/mysap/images/0101.jpg"/> </topic> </topics> */ public List<Topic> getContacts() throws Exception{ String dataURL = "http://192.168.173.1:8081/mysap/datafile/topic01.xml"; HttpURLConnection conn = (HttpURLConnection)new URL(dataURL).openConnection(); conn.setConnectTimeout(5000); conn.setRequestMethod("GET"); if(conn.getResponseCode() == 200){ InputStream inputStream = conn.getInputStream(); String inputEncoding = "UTF-8"; XmlPullParser xmlParser = Xml.newPullParser(); xmlParser.setInput(inputStream, inputEncoding); List<Topic> topicList = new ArrayList<Topic>(); int eventType = xmlParser.getEventType(); String tagName = null; Topic topic = null; while(eventType != XmlPullParser.END_DOCUMENT){ tagName = xmlParser.getName(); switch(eventType){ case XmlPullParser.START_TAG: if("topic".equals(tagName)){ topic = new Topic(); topic.id = new Integer(xmlParser.getAttributeValue(0)); }else if("title".equals(tagName)){ topic.title = xmlParser.nextText(); }else if("image".equals(tagName)){ topic.imageSrc = xmlParser.getAttributeValue(0); } break; case XmlPullParser.END_TAG: if("topic".equals(tagName)){ topicList.add(topic); topic = null; } break; } eventType = xmlParser.next(); } return topicList; } return null; }
4、从网络上获取文件,存储在指定的缓存目录下
/** * 先把网络文件的fileUri进行MD5加密处理,然后生产对应的文件(后缀名不变) * 先从缓存目录下查询是否存在该文件,如果不存在则再次获取,直接从缓存中获取 * 否则把网络文件缓存到本地 * @param fileUri * @param cacheDir * @return * @throws Exception */ public Uri getImage(String fileUri, File cacheDir) throws Exception{ String tempPath = MD5.getMD5(fileUri) + fileUri.substring(fileUri.lastIndexOf(".")); File localFile = new File(cacheDir, tempPath); if(localFile.exists()){ return Uri.fromFile(localFile); }else{ HttpURLConnection conn = (HttpURLConnection)new URL(fileUri).openConnection(); conn.setConnectTimeout(5000); conn.setRequestMethod("GET"); if(conn.getResponseCode() == 200){ FileOutputStream outStream = new FileOutputStream(localFile); InputStream inputStream = conn.getInputStream(); byte[] buffer = new byte[1024]; int len = 0; while( (len = inputStream.read(buffer)) != -1){ outStream.write(buffer, 0, len); } inputStream.close(); outStream.close(); return Uri.fromFile(localFile); } } return null; }
相关推荐
在Android开发中,网络权限配置是至关重要的,它关乎到应用程序能否正常地访问网络资源,进行数据的发送和接收。本文将深入探讨Android系统中的网络权限配置,以及如何在实际项目中正确设置和使用。 首先,Android...
本篇文章将详细讲解"android常用工具类集合"中涉及的关键知识点,包括网络连接、字符处理和文件处理,以及与静默安装相关的技术。 一、网络连接 在Android应用中,网络连接是常见的操作,如获取数据、发送请求等。...
这是每个Android应用的核心配置文件,包含了应用的基本信息如包名、权限、活动(Activity)、服务(Service)等。对于源代码工程,这个文件可能位于各个模块中,需要综合考虑其影响。 总之,导入Android源代码工程...
1. **Android权限**:在AndroidManifest.xml文件中,你需要添加`<uses-permission>`标签来请求访问串口的权限,如`<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />`,因为串口访问通常...
总的来说,这个Android查询工具源代码是一个宝贵的教育资源,可以帮助开发者掌握Android数据库操作、UI设计和项目结构组织等方面的知识,同时通过阅读源码,还可以学习到如何优化代码和提高应用性能。
《Android常用代码大全及入门电子书》是一本深入浅出的Android编程指南,它涵盖了从初学者到进阶开发者所需的各种代码示例和实践知识。这本书的目的是帮助读者快速掌握Android开发的基础,并提供一系列实用的代码...
Gradle是Android的构建工具,支持灵活的构建配置和插件扩展。 这些工具库都是Android开发中的重要组成部分,开发者可以根据项目需求选择合适的一个或多个来使用。在"appbase-master"这样的项目中,可能包含了上述...
**自定义权限配置** 在Android 6.0中,开发者需要在`AndroidManifest.xml`中声明所需的所有权限,并且需要编写代码来处理运行时权限的请求和响应。为了简化这个过程,可以进行自定义封装,创建一个工具类或者库,...
以下是对"Android-简单的Android工具类包含ActivityFragmentApplication基类和各类常用工具类集合"这个主题的详细解析。 1. **Activity基类**: - Activity基类通常包含一些通用的方法,如初始化布局、处理权限、...
10. **Gradle构建系统**:Android Studio使用Gradle作为构建工具,源码可能包含build.gradle文件,展示如何配置应用的构建变量、依赖关系和版本控制。 通过深入研究这些源代码,初学者不仅可以巩固理论知识,还能...
Android Studio基于IntelliJ IDEA,提供了强大的代码编辑、调试、构建和性能优化工具。它支持Gradle构建系统,允许灵活的项目配置和依赖管理。通过XML布局文件和Java/Kotlin代码的结合,开发者可以构建复杂的用户...
在Android开发中,串口通信是一种常见的硬件交互方式,它允许设备通过串行接口进行数据交换,例如在物联网...通过深入研究这些代码和工具,开发者可以提升自己在Android硬件级交互方面的能力,为更复杂的项目做好准备。
在Android开发中,工具类(Util Classes)是程序员经常使用的代码模块,它们提供了一系列静态方法,用于处理各种常见的任务,从而提高代码的可重用性和效率。以下是对"Android常用工具类"中涉及的一些关键知识点的...
- **权限管理**:源代码揭示了Android是如何处理权限请求的,这对于理解和编写安全的应用至关重要。 - **UI框架**:Android的视图系统、布局管理器和事件处理的源代码可以帮助我们优化界面性能。 - **网络编程**...
Android系统基于Linux内核,由Google主导并开放源码,为开发者提供了丰富的API和工具来创建功能丰富的应用程序。在这个主题下,我们可以探讨以下几个关键知识点: 1. **环境搭建**:开发Android应用首先需要安装...
【Android开发入门与实战的代码】这一主题涵盖了Android应用程序开发的基础知识和实践技巧,适合初学者和希望深化Android技能的开发者。在这个项目中,我们将会探索Android开发环境的搭建、基本组件的理解以及如何...
《Android应用案例开发大全》是一本深入探讨Android应用程序开发的实战型书籍,其源代码提供了丰富的实例,旨在帮助开发者从实践中学习和理解Android开发的核心概念和技术。这些源代码覆盖了从基础到高级的各种应用...
在实际使用中,开发者需要将这个工具集成到自己的项目中,通过配置和定制来满足特定应用的需求。通过这种方式,开发者可以更好地控制应用的启动流程,减少无用的内存消耗,提高启动速度,从而提升用户满意度。同时,...
【Android代码-安卓万能工具箱】是一款专为Android平台设计的综合性应用,它集合了多种实用工具,方便用户在日常使用中进行各种操作。这个项目通常由一系列的Java或Kotlin代码组成,利用Android SDK和相关框架实现。...
1. **AndroidManifest.xml**:这是每个Android应用的配置文件,定义了应用的基本属性、所需权限、活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)和内容提供者(ContentProvider)等组件。...