首页 > 代码库 > Android中常用的工具类02
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; } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。