您可以使用 Android 的 Log 类将系统日志打印到 SD 卡文件。以下是一个简单的示例代码:

import android.util.Log;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Logger {

    private static final String TAG = 'Logger';
    private static final String LOG_FILE_NAME = 'log.txt';

    public static void logToFile(String message) {
        // 获取当前时间
        String currentTime = new SimpleDateFormat('yyyy-MM-dd HH:mm:ss.SSS').format(new Date());
        // 构建日志信息
        String logMessage = currentTime + ' ' + message + '\n';

        // 检查 SD 卡是否可用
        if (!isSdCardAvailable()) {
            Log.e(TAG, 'SD card is not available');
            return;
        }

        // 获取 SD 卡根目录
        File sdCardDir = android.os.Environment.getExternalStorageDirectory();
        File logFile = new File(sdCardDir, LOG_FILE_NAME);

        try {
            // 创建文件输出流
            FileOutputStream outputStream = new FileOutputStream(logFile, true);
            // 写入日志信息
            outputStream.write(logMessage.getBytes());
            // 关闭输出流
            outputStream.close();
        } catch (IOException e) {
            Log.e(TAG, 'Failed to write log to file: ' + e.getMessage());
        }
    }

    private static boolean isSdCardAvailable() {
        return android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
    }
}

您可以在需要打印日志的地方调用 Logger.logToFile('Your log message') 来将日志写入 SD 卡文件。请确保在使用该功能之前已经添加了适当的权限到您的 AndroidManifest.xml 文件中:

<uses-permission android:name='android.permission.WRITE_EXTERNAL_STORAGE' />

另外,请注意在 Android 10(API 级别 29)及更高版本上,您需要动态请求运行时权限来访问外部存储。


原文地址: https://www.cveoy.top/t/topic/qqUO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录