(一) 获取缓存路径
/**
* 获取缓存根目录
*
* @param context
* 上下文对象
* @param isUnInstallDelete
* 卸载是否删除缓存文件
* @param isSaveForLong
* 是否长时间保存
* @return
*/
@SuppressLint("NewApi")
public static File getCacheFile(Context context, boolean isUnInstallDelete,
boolean isSaveForLong) {
File result = null;
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)
|| !Environment.isExternalStorageRemovable()) {
if (isUnInstallDelete) {
if (isSaveForLong) {
result = context.getExternalFilesDir(null);
} else {
result = context.getExternalCacheDir();
}
} else {
result = Environment.getExternalStorageDirectory();
}
} else {
// 没有外部存储卡,或外部存储卡不可用
if (isSaveForLong) {
result = context.getFilesDir();
} else {
result = context.getCacheDir();
}
}
return result;
}
</pre><pre code_snippet_id="1582074" snippet_file_name="blog_20160219_1_6297346" name="code" class="java">
(二)将流对象转换为字符串
/**
* 把流对象转换成字符串
*/
public static String convertStream2String(InputStream is) {
StringBuilder sb = new StringBuilder();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;
try {
while ((line = br.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
(三)打开文件
public class OpenFile {
public static Intent openFile(File file){
if(file != null && file.exists()){
String filePath = file.getAbsolutePath();
/* 取得扩展名 */
String end=file.getName().substring(file.getName().lastIndexOf(".") + 1,file.getName().length()).toLowerCase();
/* 依扩展名的类型决定MimeType */
if(end.equals("m4a")||end.equals("mp3")||end.equals("mid")||
end.equals("xmf")||end.equals("ogg")||end.equals("wav")){
return getAudioFileIntent(filePath);
}else if(end.equals("3gp")||end.equals("mp4")){
return getAudioFileIntent(filePath);
}else if(end.equals("jpg")||end.equals("gif")||end.equals("png")||
end.equals("jpeg")||end.equals("bmp")){
return getImageFileIntent(filePath);
}else if(end.equals("apk")){
return getApkFileIntent(filePath);
}else if(end.equals("ppt")){
return getPptFileIntent(filePath);
}else if(end.equals("xls")){
return getExcelFileIntent(filePath);
}else if(end.equals("doc")){
return getWordFileIntent(filePath);
}else if(end.equals("pdf")){
return getPdfFileIntent(filePath);
}else if(end.equals("chm")){
return getChmFileIntent(filePath);
}else if(end.equals("txt")){
return getTextFileIntent(filePath,false);
}else{
return getAllIntent(filePath);
}
}else {
return null;
}
}
//Android获取一个用于打开APK文件的intent
public static Intent getAllIntent( String param ) {
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(android.content.Intent.ACTION_VIEW);
Uri uri = Uri.fromFile(new File(param));
intent.setDataAndType(uri,"*/*");
return intent;
}
//Android获取一个用于打开APK文件的intent
public static Intent getApkFileIntent( String param ) {
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(android.content.Intent.ACTION_VIEW);
Uri uri = Uri.fromFile(new File(param ));
intent.setDataAndType(uri,"application/vnd.android.package-archive");
return intent;
}
//Android获取一个用于打开VIDEO文件的intent
public static Intent getVideoFileIntent( String param ) {
Intent intent = new Intent("android.intent.action.VIEW");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("oneshot", 0);
intent.putExtra("configchange", 0);
Uri uri = Uri.fromFile(new File(param ));
intent.setDataAndType(uri, "video/*");
return intent;
}
//Android获取一个用于打开AUDIO文件的intent
public static Intent getAudioFileIntent( String param ){
Intent intent = new Intent("android.intent.action.VIEW");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("oneshot", 0);
intent.putExtra("configchange", 0);
Uri uri = Uri.fromFile(new File(param ));
intent.setDataAndType(uri, "audio/*");
return intent;
}
//Android获取一个用于打开Html文件的intent
public static Intent getHtmlFileIntent( String param ){
Uri uri = Uri.parse(param ).buildUpon().encodedAuthority("com.android.htmlfileprovider").scheme("content").encodedPath(param ).build();
Intent intent = new Intent("android.intent.action.VIEW");
intent.setDataAndType(uri, "text/html");
return intent;
}
//Android获取一个用于打开图片文件的intent
public static Intent getImageFileIntent( String param ) {
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File(param ));
intent.setDataAndType(uri, "image/*");
return intent;
}
//Android获取一个用于打开PPT文件的intent
public static Intent getPptFileIntent( String param ){
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File(param ));
intent.setDataAndType(uri, "application/vnd.ms-powerpoint");
return intent;
}
//Android获取一个用于打开Excel文件的intent
public static Intent getExcelFileIntent( String param ){
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File(param ));
intent.setDataAndType(uri, "application/vnd.ms-excel");
return intent;
}
//Android获取一个用于打开Word文件的intent
public static Intent getWordFileIntent( String param ){
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File(param ));
intent.setDataAndType(uri, "application/msword");
return intent;
}
//Android获取一个用于打开CHM文件的intent
public static Intent getChmFileIntent( String param ){
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File(param ));
intent.setDataAndType(uri, "application/x-chm");
return intent;
}
//Android获取一个用于打开文本文件的intent
public static Intent getTextFileIntent( String param, boolean paramBoolean){
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (paramBoolean){
Uri uri1 = Uri.parse(param );
intent.setDataAndType(uri1, "text/plain");
}else{
Uri uri2 = Uri.fromFile(new File(param ));
intent.setDataAndType(uri2, "text/plain");
}
return intent;
}
//Android获取一个用于打开PDF文件的intent
public static Intent getPdfFileIntent( String param ){
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File(param ));
intent.setDataAndType(uri, "application/pdf");
return intent;
}
}
(四) 日志工具类
/**
* 日志工具类
* @author Administrator
*
*/
public class LogUtils {
public static int DEBUG_LEVEL = 6;
public static String TAG = "aijie";
private static final int VERBOSE = 5;
private static final int DEBUG = 4;
private static final int INFO = 3;
private static final int WARN = 2;
private static final int ERROR = 1;
/**
* 打印长日志的方法(分次打印)
* @param msg
* @return
*/
public static void logL(String tag, String content) {
int p = 2000;
long length = content.length();
if (length < p || length == p)
Log.i(tag, content);
else {
while (content.length() > p) {
String logContent = content.substring(0, p);
content = content.replace(logContent, "");
Log.i(tag, logContent);
}
Log.i(tag, content);
}
}
public static void logL(String content) {
int p = 2000;
long length = content.length();
if (length < p || length == p)
Log.i(TAG, content);
else {
while (content.length() > p) {
String logContent = content.substring(0, p);
content = content.replace(logContent, "");
Log.i(TAG, logContent);
}
Log.i(TAG, content);
}
}
// 个人日志工具方法
public static int v(String msg) {
if (DEBUG_LEVEL > VERBOSE) {
return Log.v(TAG, msg);
} else {
return 0;
}
}
public static int d(String msg) {
if (DEBUG_LEVEL > DEBUG) {
return Log.d(TAG, msg);
} else {
return 0;
}
}
public static int i(String msg) {
if (DEBUG_LEVEL > INFO) {
return Log.i(TAG, msg);
} else {
return 0;
}
}
public static int w(String msg) {
if (DEBUG_LEVEL > WARN) {
return Log.w(TAG, msg);
} else {
return 0;
}
}
public static int e(String msg) {
if (DEBUG_LEVEL > ERROR) {
return Log.e(TAG, msg);
} else {
return 0;
}
}
// 带标签的日志工具方法
public static int v(String tag, String msg) {
if (DEBUG_LEVEL > VERBOSE) {
return Log.v(tag, msg);
} else {
return 0;
}
}
public static int d(String tag, String msg) {
if (DEBUG_LEVEL > DEBUG) {
return Log.d(tag, msg);
} else {
return 0;
}
}
public static int i(String tag, String msg) {
if (DEBUG_LEVEL > INFO) {
return Log.i(tag, msg);
} else {
return 0;
}
}
public static int w(String tag, String msg) {
if (DEBUG_LEVEL > WARN) {
return Log.w(tag, msg);
} else {
return 0;
}
}
public static int e(String tag, String msg) {
if (DEBUG_LEVEL > ERROR) {
return Log.e(tag, msg);
} else {
return 0;
}
}
}
(五) Toast工具类-- 消除不断弹出的困扰
/**
* ToastUtil -- 消除不断提示的困扰
*/
public class ToastUtil {
private static Toast mToast;
private static Handler mHandler = new Handler();
private static Runnable mRunnable = new Runnable() {
public void run() {
mToast.cancel();
mToast = null; // toast 隐藏后,将其置为 null
}
};
public static void showToast(Context context, String message, int duration) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.custom_toast, null); //自定义布局
TextView text = (TextView) view.findViewById(R.id.toast_message);
text.setText(message); //显示的提示文字
mHandler.removeCallbacks(mRunnable);
if (mToast == null) { // 只有 mToast == null 时才重新创建,否则只需更改提示文字
mToast = new Toast(context);
mToast.setDuration(Toast.LENGTH_LONG);
mToast.setGravity(Gravity.BOTTOM, 0, 150);
mToast.setView(view);
}
mHandler.postDelayed(mRunnable, duration); // 延迟 duration 事件隐藏 toast
mToast.show();
}
// 获取 String.xml 中的提示信息
public static void showToast(Context context, int strId, int duration) {
showToast(context, context.getString(strId), duration);
}
}