当前位置:  编程技术>移动开发
本页文章导读:
    ▪软件中log日记的创建_小小测试        软件中log日志的创建_小小测试                        知足常乐Log工具类:package com.zzl.test; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import .........
    ▪ 获得系统支持的所有音频格式        取得系统支持的所有音频格式 try { // Method method = Class.forName("android.media.DecoderCapabilities").getDeclaredMethod("getAudioDecoders", new Class[0]); // List<?> list = (List<?>) method.invoke(null, null); // for(Ob.........
    ▪ UIpageControl.Demo 分享       UIpageControl.....Demo 分享 显示了一个页面的控件。点击当前颜色鲜艳的页面指示器的两边会触发UIControlEventValueChanged事件,并且启动设置为控件动作的任何方法。可以通过调用currentpage查询.........

[1]软件中log日记的创建_小小测试
    来源: 互联网  发布时间: 2014-02-18
软件中log日志的创建_小小测试
                       知足常乐
Log工具类:
package com.zzl.test;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import android.util.Log;

/**
 * Created by zzl
 * Date: 2012-03-03
 * 记录log日志文件的工具类
 */ 

public class LogTool {
	private static LogTool instance;
    private PrintWriter logPrint;
    private String logFile = "";
    private String taskNo = "";//任务号
	private String rootDir = "/sdcard/SGWS/log";//日记文件为sdcard/SGWS/任务号/日志文件

    /**
     * 配置没有头的log
    */
    private LogTool(){
        checkDate();//检查日期如果改变新建log文件
    } 
    public static LogTool getInstance() {
		if (instance == null) {
			instance = new LogTool();
		}
		return instance; 
	}
    /**
     * 配置log文件名的头
    */
    public LogTool(String logName){
        checkDate();
    } 
    /**
     * 将java.util.Date格式转换为字符串格式”yyyy-MM-dd HH:mm:ss“
     * 如Sat May 11 17:24:21 CST 2002 to '20002-05011 17:24:21'  
     * @param time Date日期
     * @return字符串
     */
    public String dateToString(Date time){
    	SimpleDateFormat formatter;
    	formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    	String ctime = formatter.format(time);
    	return ctime;
    }
    /**
     * 得到log文件名
    */
    private String getLogFile(){
        String date = "";
        Calendar cd = Calendar.getInstance();
        int y = cd.get(Calendar.YEAR);
        int m = cd.get(Calendar.MONTH) + 1;
        int d = cd.get(Calendar.DAY_OF_MONTH); 
       /* if(null==taskNo || "".equals(taskNo)){
        	date = rootDir+"log/" + logName + y + "-"; 
        }else{
        	date = rootDir+taskNo+"/log/" + logName + y + "-"; 
        }*/
        date = rootDir+"/"+ y + "-"; 
        if(m < 10)
            date += 0; 
        date += m + "-"; 
        if(d < 10)
            date += 0; 
        date += d + ".log"; 
        return date;
    } 

    /**
     * 配置log属性,如果没有新建log文件
    */
    private void newLog(){
        logFile = getLogFile();//创建log文件名 
        try{
        	File filePath = new File(rootDir);
        	if(!filePath.exists()){
        		filePath.mkdirs();
        	}
        	File file = new File(logFile);
        	if(!file.exists()){
        		file.createNewFile();
        	}
        	//(new File(logFile)).mkdir(); 
            logPrint = new PrintWriter(new FileWriter(logFile, true), true);
        }catch(IOException e){
        	File filePath = new File(rootDir);
        	if(!filePath.exists()){
        		filePath.mkdirs();
        	}
        	File file = new File(logFile);
        	if(!file.exists()){
        		try {
					file.createNewFile();
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
        	}
            
            try{
                logPrint = new PrintWriter(new FileWriter(logFile, true), true);
            }catch(IOException ex){
                System.err.println("无法打开日志文件:" + logFile);
                logPrint = new PrintWriter(System.err);
            }
        }
    } 

    /**
     * 检查日期如果改变新建log文件
    */
    private void checkDate(){
    	Log.e("LogTool.checkDate()文件名:", logFile);
        if(logFile == null || logFile.trim().equals("") || !logFile.equals(getLogFile())){
            newLog();
        }
    } 

    /**
     * 将文本信息写入日志文件,缺省为userdir/log
    */
    public void log(String msg) {
    	//this.taskNo = taskNo;
        checkDate();
        logPrint.println(dateToString(new Date()) + "\t" + msg+"\r\n");
        logPrint.close();
    } 

    /**
     * 将文本信息与异常写入日志文件
    */
    public void log(Throwable e, String msg) {
    	//this.taskNo = taskNo;
        checkDate();
        logPrint.println(dateToString(new Date()) + "\t" + msg+"\r\n");
        e.printStackTrace(logPrint);
        logPrint.close();
    }
}


Activity中调用:
package com.zzl.test;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Button btn = (Button) findViewById(R.id.button1);
        
        btn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View arg0) {
				LogTool.getInstance().log("MainActivity.onCreate.btn.OnClickListener");
			}
		});
    }
}


即的权限的添加,ok !

    
[2] 获得系统支持的所有音频格式
    来源: 互联网  发布时间: 2014-02-18
取得系统支持的所有音频格式
try {
//			Method method = Class.forName("android.media.DecoderCapabilities").getDeclaredMethod("getAudioDecoders", new Class[0]);
//			List<?> list = (List<?>) method.invoke(null, null);
//			for(Object obj: list){
//				KuwoLog.v(TAG, obj + "");
//			}
        	
			Field f = Class.forName("android.media.MediaFile").getDeclaredField("sFileTypeMap");
			f.setAccessible(true);
			Object obj = f.get(null);
			HashMap<String, Object> typeMap = (HashMap<String, Object>) obj;
			Iterator<String> keyIterator = typeMap.keySet().iterator();
			while(keyIterator.hasNext()){
				KuwoLog.v(TAG, keyIterator.next());
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SecurityException e) {
			e.printStackTrace();
		} 
//		catch (NoSuchMethodException e) {
//			e.printStackTrace();
//		} 
		catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} 
//		catch (InvocationTargetException e) {
//			e.printStackTrace();
//		}
		catch (NoSuchFieldException e) {
			e.printStackTrace();
		}
 

    
[3] UIpageControl.Demo 分享
    来源: 互联网  发布时间: 2014-02-18
UIpageControl.....Demo 分享
显示了一个页面的控件。点击当前颜色鲜艳的页面指示器的两边会触发UIControlEventValueChanged事件,
并且启动设置为控件动作的任何方法。可以通过调用currentpage查询控件的新值,并调整numberofpage设置页面数。

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3