Android中经常使用的工具类02
1、读取手机联系人信息
一般用在读取手机通讯录上传,这一块比較多。
import java.util.ArrayList;
import java.util.List; import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.text.TextUtils; import com.iss.starwish.bean.PhoneContact;
/**
* 读取手机联系人信息
*/
public class ReadPhoneContactUtil {
/**
* 通过内容观察者,或者手机联系人相关的信息
**/
public static List<PhoneContact> getPhoneContacts(Context mContext) {
List<PhoneContact> phoneContacts = new ArrayList<PhoneContact>();
ContentResolver resolver = mContext.getContentResolver();
String[] PHONES_PROJECTION = new String[] { Phone.NUMBER,Phone.DISPLAY_NAME };
// 获取手机联系人
Cursor phoneCursor = resolver.query(Phone.CONTENT_URI,PHONES_PROJECTION, null, null, null); if (phoneCursor != null) {
while (phoneCursor.moveToNext()) { // 得到手机号码
String phoneNumber = phoneCursor.getString(0);
// 当手机号码为空的或者为空字段 跳过当前循环
if (TextUtils.isEmpty(phoneNumber))
continue;
// 得到联系人名称
String contactName = phoneCursor.getString(1);
phoneContacts.add(new PhoneContact(contactName,phoneNumber));
} }
return phoneContacts;
} }
2、通过资源的名称来获取资源id
这个最经常使用的是在国际化或者一键改动主题这一块。依据不同的语言环境,切换不同的字符串标识。
依据不同的文件名称,切换不同的主题
package net.tianyouwang.utils; import android.content.Context; /**
* 通过字段名称来动态的获取资源的id,再来使用。此类,能够通过字段名称动态获取id。
*/
public class ResourceUtil { public static int getLayoutId(Context context, String paramString) {
return context.getResources().getIdentifier(paramString, "layout",
context.getPackageName());
} public static int getStringId(Context context, String paramString) {
return context.getResources().getIdentifier(paramString, "string",
context.getPackageName());
} public static int getDrawableId(Context context, String paramString) {
return context.getResources().getIdentifier(paramString,
"drawable", context.getPackageName());
} public static int getStyleId(Context context, String paramString) {
return context.getResources().getIdentifier(paramString,
"style", context.getPackageName());
} public static int getId(Context context, String paramString) {
return context.getResources().getIdentifier(paramString,
"id", context.getPackageName());
} public static int getColorId(Context context, String paramString) {
return context.getResources().getIdentifier(paramString,
"color", context.getPackageName());
} public static int getAnimationId(Context context, String paramString) {
return context.getResources().getIdentifier(paramString,
"anim", context.getPackageName());
} public static int getBooleanId(Context context, String paramString) {
return context.getResources().getIdentifier(paramString,
"bool", context.getPackageName());
} public static int getArrayId(Context context, String paramString) {
return context.getResources().getIdentifier(paramString,
"array", context.getPackageName());
}
}
3、SDCARD状态和SDCARD剩余容量的操作
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException; import android.os.Environment;
import android.os.StatFs;
import android.text.TextUtils;
/***
* SDCard的剩余容量推断操作
*
*/
public class SDCardAvailableUtils {
private static final int imageSize = 1*1024*1024;//1M
public static boolean isExistSDCard() {
if (android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED)
&& getAvailableStore(Environment.getExternalStorageDirectory().getPath()) > imageSize) {
return true;
} else
return false;
} public static void saveDatatoLocalFile(String data, String filePath) {
if (!TextUtils.isEmpty(data) && !TextUtils.isEmpty(filePath)) {
File file = new File(filePath);
FileOutputStream outStr = null;
try {
if (!file.exists()) {
file.createNewFile();
}
outStr = new FileOutputStream(file);
if (outStr != null) {
outStr.write(data.getBytes());
outStr.flush();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (outStr != null) {
try {
outStr.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
outStr = null;
}
}
} }
} /**
* 获取存储卡的剩余容量,单位为字节
*
* @param filePath
* @return availableSpare
*/ public static long getAvailableStore(String filePath) {
// 取得sdcard文件路径
StatFs statFs = new StatFs(filePath);
// 获取block的SIZE
long blocSize = statFs.getBlockSize();
// 获取BLOCK数量
long totalBlocks = statFs.getBlockCount();
// 可使用的Block的数量
long availaBlock = statFs.getAvailableBlocks();
long total = totalBlocks * blocSize;//总的存储空间
long availableSpare = availaBlock * blocSize;//当前可用存储空间
return availableSpare; } }
Android中经常使用的工具类02的更多相关文章
- 转--Android中调用webservice的工具类
最近学习WebService,感觉利用这个借口开发网站的Android客户端方便及了,用到一个工具类,这里铭记一下. public static final String WebServiceName ...
- Android中创建倒影效果的工具类
一.有时候我们需要创建倒影的效果,我们接触最多的都是图片能够创建倒影,而布局依然可以创建倒影. 二.工具类代码 import android.graphi ...
- 获取Spring容器中Bean实例的工具类(Java泛型方法实现)
在使用Spring做IoC容器的时候,有的类不方便直接注入bean,需要手动获得一个类型的bean. 因此,实现一个获得bean实例的工具类,就很有必要. 以前,写了一个根据bean的名称和类型获取b ...
- commons-collections包中的常用的工具类
commons-collections包中的常用的工具类 <dependency> <groupId>commons-collections</groupId> & ...
- Android开发之常用必备工具类图片bitmap转成字符串string与String字符串转换为bitmap图片格式
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 博客园主页:http://www.cnblogs.com/mcxiaobing ...
- Hutool中那些常用的工具类和方法
Hutool中那些常用的工具类和方法 Hutool是一个Java工具包,它帮助我们简化每一行代码,避免重复造轮子.如果你有需要用到某些工具方法的时候,不妨在Hutool里面找找,可能就有.本文将对Hu ...
- Android—关于自定义对话框的工具类
开发中有很多地方会用到自定义对话框,为了避免不必要的城府代码,在此总结出一个工具类. 弹出对话框的地方很多,但是都大同小异,不同无非就是提示内容或者图片不同,下面这个类是将提示内容和图片放到了自定义函 ...
- Android之SharedPreferences两个工具类
相信Android的这个最简单的存储方式大家都很熟悉了,但是有一个小小技巧,也许你没有用过,今天就跟大家分享一下,我们可以把SharedPreferences封装在一个工具类中,当我们需要写数据和读数 ...
- Android OkHttp网络连接封装工具类
package com.lidong.demo.utils; import android.os.Handler; import android.os.Looper; import com.googl ...
随机推荐
- 软路由OpenWrt教程收集(插件开发教程,opkg安装软件教程)
说明:现在几乎所有家庭级别的路由器都是基于OpenWrt进行衍生搭建的. https://openwrt.io/(极路由HiWifi创建的开源站点,极路由系统有这个衍生而来) http://www.o ...
- Ubuntu下安装配置JDK
第一步:下载jdk-7-linux-i586.tar.gz wget -c http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-i586 ...
- java、freemarker保留两位小数
一.Java保留2位小数 double acc = 22.4322; String accX = String.format("%.2f", acc); 二.freemarker保 ...
- 解决dubbo问题:forbid consumer(1)
原因: 1.dubbo服务没有起动起来 2.dubbo链接的地址出现异常 3.dubbo服务端更新了服务接口,没有发布 如果已上都没有问题,那么还有一个原因就是 “ 别人的代码有问题 阻碍了 你的程序 ...
- 从头认识Spring-1.7 如何通过属性注入Bean?(1)-如何通过属性向对象注入值?
这一章节我们来讨论一下如何通过属性注入Bean? 这一章节分为两部分,第一部分我们通过属性向对象注入值,第二部分我们通过属性向对象注入还有一个对象的引用. 1.如何通过属性向对象注入值? (1)dom ...
- XJTU Summer Holiday Test 1(Brackets in Implications-构造)
B - Brackets in Implications Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & ...
- NYOJ82 迷宫寻宝(一)【BFS】
迷宫寻宝(一) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描写叙述 一个叫ACM的寻宝者找到了一个藏宝图.它依据藏宝图找到了一个迷宫,这是一个非常特别的迷宫,迷宫里有N个 ...
- 文件压缩和解压 FileStream GZipStream
using (FileStream reader=new FileStream (@"c:\1.txt",FileMode.Open,FileAccess.Read)) { usi ...
- Android学习(三) 自动完成的使用
1.AutoCompleteTextView 自动完成功能,在文本框中输入字符,会出现匹配的自动提示.类似百度搜索. XML代码 <?xml version="1.0" en ...
- Django——基于类的视图(class-based view)
刚开始的时候,django只有基于函数的视图(Function-based views).为了解决开发视图中繁杂的重复代码,基于函数的通用视图( Funcation-based generic vie ...