Android 开发常用易忘的方法总结

博客将会不断总结


1、随机生成文件名:
/**
	 * 随机生成文件名称
	 * 
	 * @param suffixName
	 *            文件的后缀名,如:.mp3 ; .amr -> 录音格式的后缀名
	 * @return
	 */
	private String createFileName(String suffixName) {

		return UUID.randomUUID().toString() + suffixName;
	}

2、手机缓存地址:
/**
	 * 获取手机缓存地址,如果外置内存卡存在,则取得外置内存卡的缓存路径 否则获取内置内存卡的缓存路径,根据类型数据创建相应的文件夹。
	 * 
	 * @param context
	 *            上下文对象
	 * @param typeName
	 *            数据类型的文件夹的名称,如txt ;bitmap
	 * @return
	 */
	private File getDiskCacheDir(Context context, String typeName) {

		String cachePath;
		if (Environment.getExternalStorageState().equals(
				Environment.MEDIA_MOUNTED)
				|| !Environment.isExternalStorageRemovable()) {

			cachePath = context.getExternalCacheDir().getPath();
		} else {
			cachePath = context.getCacheDir().getPath();
		}
		return new File(cachePath, typeName);
	}

3、获取应用的版本号:
/**
	 * 获取应用的版本号
	 * @param context
	 * @return
	 */
	private int getAppVersion(Context context) {

		try {
			PackageInfo info = context.getPackageManager().getPackageInfo(
					context.getPackageName(), 0);
			return info.versionCode;
		} catch (NameNotFoundException e) {
			e.printStackTrace();
		}
		return 1;
	}

4、将字符串转换成 MD5 编码:
/**
	 * 将字符串转换为 MD5 编码
	 * @param key
	 * @return
	 */
	public String hashKeyDisk(String key){
		
		String cacheKey = null ;
		MessageDigest messageDigest;
		try {
			messageDigest = MessageDigest.getInstance("MD5");
			messageDigest.update(key.getBytes());
			cacheKey = byteToHexString(messageDigest.digest());
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}
		return cacheKey;
	}
	
	private String byteToHexString(byte[] bytes){
		
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < bytes.length; i++) {
			
			String hex = Integer.toHexString(0xFF & bytes[i]);
			if (hex.length() ==1) {
				sb.append('0');
			}
			sb.append(hex);
		}
		return sb.toString();
	}

5、对SD卡文件进行筛选 

private String path = Environment.getExternalStorageDirectory().getAbsolutePath();

 private void getFileName(final List<String> list , File path){
    	
    	path.listFiles(new FileFilter() {
			
			@Override
			public boolean accept(File pathname) {
				
				String name = pathname.getName();
				
				int i = name.lastIndexOf('.'); // 找到文件的下标  . 的最后出现的位置
				if (i != -1) {
					
					name  = name.substring(i); // 取得name的子字符串以i为开始位置
					
					// equalsIgnoreCase 表示不顾大小写进行
					if (name.equalsIgnoreCase(".mp4")||name.equalsIgnoreCase(".rmvb")) {
						
						list.add(pathname.getName());
						
						return true;
					}
				}else if (pathname.isDirectory()) { //如果该pathname是个路径
					
					getFileName(list, pathname);
				}
				
				return false;
			}
		});
    }
不足:可能对于有些手机不能对外置SD卡的数据进行匹配,


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值