`
zhengjj_2009
  • 浏览: 153134 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

常用的android权限配置和常用工具代码

 
阅读更多

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常用工具类集合"中涉及的关键知识点,包括网络连接、字符处理和文件处理,以及与静默安装相关的技术。 一、网络连接 在Android应用中,网络连接是常见的操作,如获取数据、发送请求等。...

    导入Android源代码工程配置文件

    这是每个Android应用的核心配置文件,包含了应用的基本信息如包名、权限、活动(Activity)、服务(Service)等。对于源代码工程,这个文件可能位于各个模块中,需要综合考虑其影响。 总之,导入Android源代码工程...

    串口调试工具 Android代码

    1. **Android权限**:在AndroidManifest.xml文件中,你需要添加`&lt;uses-permission&gt;`标签来请求访问串口的权限,如`&lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&gt;`,因为串口访问通常...

    Android源码:查询工具源代码

    总的来说,这个Android查询工具源代码是一个宝贵的教育资源,可以帮助开发者掌握Android数据库操作、UI设计和项目结构组织等方面的知识,同时通过阅读源码,还可以学习到如何优化代码和提高应用性能。

    android常用代码大全及入门电子书

    《Android常用代码大全及入门电子书》是一本深入浅出的Android编程指南,它涵盖了从初学者到进阶开发者所需的各种代码示例和实践知识。这本书的目的是帮助读者快速掌握Android开发的基础,并提供一系列实用的代码...

    Android-Android常用工具库

    Gradle是Android的构建工具,支持灵活的构建配置和插件扩展。 这些工具库都是Android开发中的重要组成部分,开发者可以根据项目需求选择合适的一个或多个来使用。在"appbase-master"这样的项目中,可能包含了上述...

    Android6.0后权限封装配置

    **自定义权限配置** 在Android 6.0中,开发者需要在`AndroidManifest.xml`中声明所需的所有权限,并且需要编写代码来处理运行时权限的请求和响应。为了简化这个过程,可以进行自定义封装,创建一个工具类或者库,...

    Android-简单的Android工具类包含ActivityFragmentApplication基类和各类常用工具类集合

    以下是对"Android-简单的Android工具类包含ActivityFragmentApplication基类和各类常用工具类集合"这个主题的详细解析。 1. **Activity基类**: - Activity基类通常包含一些通用的方法,如初始化布局、处理权限、...

    《Android移动应用基础教程》(Android Studio)(第二版)源代码.zip

    10. **Gradle构建系统**:Android Studio使用Gradle作为构建工具,源码可能包含build.gradle文件,展示如何配置应用的构建变量、依赖关系和版本控制。 通过深入研究这些源代码,初学者不仅可以巩固理论知识,还能...

    Android Studio实例代码.zip_Android app实例_Android实例_android app源码_and

    Android Studio基于IntelliJ IDEA,提供了强大的代码编辑、调试、构建和性能优化工具。它支持Gradle构建系统,允许灵活的项目配置和依赖管理。通过XML布局文件和Java/Kotlin代码的结合,开发者可以构建复杂的用户...

    Android串口示例代码以及工具类包

    在Android开发中,串口通信是一种常见的硬件交互方式,它允许设备通过串行接口进行数据交换,例如在物联网...通过深入研究这些代码和工具,开发者可以提升自己在Android硬件级交互方面的能力,为更复杂的项目做好准备。

    Android常用工具类

    在Android开发中,工具类(Util Classes)是程序员经常使用的代码模块,它们提供了一系列静态方法,用于处理各种常见的任务,从而提高代码的可重用性和效率。以下是对"Android常用工具类"中涉及的一些关键知识点的...

    Android工具包源代码

    - **权限管理**:源代码揭示了Android是如何处理权限请求的,这对于理解和编写安全的应用至关重要。 - **UI框架**:Android的视图系统、布局管理器和事件处理的源代码可以帮助我们优化界面性能。 - **网络编程**...

    Android应用程序开发 代码与PPT

    Android系统基于Linux内核,由Google主导并开放源码,为开发者提供了丰富的API和工具来创建功能丰富的应用程序。在这个主题下,我们可以探讨以下几个关键知识点: 1. **环境搭建**:开发Android应用首先需要安装...

    Android 开发入门与实战的代码

    【Android开发入门与实战的代码】这一主题涵盖了Android应用程序开发的基础知识和实践技巧,适合初学者和希望深化Android技能的开发者。在这个项目中,我们将会探索Android开发环境的搭建、基本组件的理解以及如何...

    android应用案例开发大全-源代码

    《Android应用案例开发大全》是一本深入探讨Android应用程序开发的实战型书籍,其源代码提供了丰富的实例,旨在帮助开发者从实践中学习和理解Android开发的核心概念和技术。这些源代码覆盖了从基础到高级的各种应用...

    Android-Android应用初始化工具

    在实际使用中,开发者需要将这个工具集成到自己的项目中,通过配置和定制来满足特定应用的需求。通过这种方式,开发者可以更好地控制应用的启动流程,减少无用的内存消耗,提高启动速度,从而提升用户满意度。同时,...

    Android代码-安卓万能工具箱

    【Android代码-安卓万能工具箱】是一款专为Android平台设计的综合性应用,它集合了多种实用工具,方便用户在日常使用中进行各种操作。这个项目通常由一系列的Java或Kotlin代码组成,利用Android SDK和相关框架实现。...

    《Android应用程序开发》源代码

    1. **AndroidManifest.xml**:这是每个Android应用的配置文件,定义了应用的基本属性、所需权限、活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)和内容提供者(ContentProvider)等组件。...

Global site tag (gtag.js) - Google Analytics