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;//1Mpublic static boolean isExistSDCard() {if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)&& getAvailableStore(Environment.getExternalStorageDirectory().getPath()) > imageSize) {return true;} elsereturn 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的SIZElong blocSize = statFs.getBlockSize();// 获取BLOCK数量long totalBlocks = statFs.getBlockCount();// 可使用的Block的数量long availaBlock = statFs.getAvailableBlocks();long total = totalBlocks * blocSize;//总的存储空间long availableSpare = availaBlock * blocSize;//当前可用存储空间return availableSpare;}}
转载于:https://www.cnblogs.com/wzzkaifa/p/6815999.html
Android中经常使用的工具类02相关推荐
- Android中调用webservice的工具类
最近学习WebService,感觉利用这个借口开发网站的Android客户端方便及了,用到一个工具类,这里铭记一下. public static final String WebServiceName ...
- Android获取通讯录中的所有联系人工具类
一个获取通讯录中所有联系人的工具类,存储在Map中,Map中key为手机号,value为联系人的姓名.还提供了一个根据手机号查询该手机号的联系人姓名的功能. 注:同一联系人可以存储多个手机号,但是同一 ...
- Android开发 无线Wifi+WifiUtil工具类,android开发网格布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- Android开发 几个常用工具类
本文出自[张鸿洋的博客]并 做了部分修改. 转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38965311 打开大家手上的项目,基 ...
- java.lang包有哪些类_Java中Lang包的工具类有哪些
Java中Lang包的工具类有哪些 发布时间:2020-12-08 16:15:36 来源:亿速云 阅读:76 作者:Leah 今天就跟大家聊聊有关Java中Lang包的工具类有哪些,可能很多人都不太 ...
- android开发监听媒体播放器,Android开发之媒体播放工具类完整示例
本文实例讲述了Android开发之媒体播放工具类.分享给大家供大家参考,具体如下: package com.maobang.imsdk.util; import android.media.Media ...
- 要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上。Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法(没有全部列
要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上.Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法(没有全部列 ...
- java运行python脚本_java中执行python脚本工具类详解
java中执行python脚本工具类,需要jython.jar import java.io.FileInputStream; import java.io.IOException; import j ...
- java中常用的日期工具类
java中常用的日期工具类 日期相关的类: package net.yto.ofclacct.core.util;import java.text.ParseException; import jav ...
- 使用POI在Excel中动态生成图表工具类(支持柱状、组合、环状图、折线图、等常用图)
使用POI在Excel中动态生成图表工具类 使用POI在Excel中动态生成图表工具类 由于公司是一个生成报表的机构,之前一直使用pageOffice,但是公司领导就是不买,你说公司那样有钱磨磨唧唧干 ...
最新文章
- 【软件需求工程与建模 - 小组项目】阶段性汇报-软件设计规格说明书3.0
- 缓存使用-4、Redis 持久化机制
- 使用dom4j解析XML文件
- java用beaninfo_java 可以使用BeanInfo实现bean实体与map之间的互相转换
- 如何传输文件到linux服务器?
- 图像的灰度级数越多越好_MATLAB-数字图像处理 图像直方图归一化
- 切换数据库_如何快速切换到其他数据库实例
- 横向导出excel_万能转换:R图和统计表转成发表级的Word、PPT、Excel、HTML、Latex、矢量图等...
- 华锐研究:国际领先经营机构(投行)信息技术投入 | 数据发布
- arcgis10.2之Maplex(高级标注扩展模块)
- 基于二阶矩阵的优化问题(一)线搜索策略(附matlab代码)
- delphi写QQ消息群发(模拟按键精灵)
- Hulu推荐:小众又新颖的综艺
- 如何从官网直接下载iTunes?
- BZOJ1863 [ZJOI2006]trouble 皇帝的烦恼 [思维题,二分答案,动态规划]
- 百度JS实现文本语音朗读
- java 判断类型_Java变量类型识别的3种方式
- FINDSTR 命令使用详解
- Spring Cloud Feign 请求时附带请求头
- 使用字节流和字符流向浏览器输出数据