在Android 10及更高版本中,应用程序无法直接在外部存储中的根目录中创建临时文件,因为这是受限的操作。相反,应用程序需要使用特定的目录来创建临时文件。
以下是一个示例代码,演示在Android 10上创建临时文件的解决方法:
import android.content.Context;
import android.os.Environment;
import android.util.Log;
import java.io.File;
import java.io.IOException;
public class TempFileUtil {
public static File createTempFile(Context context, String prefix, String suffix) {
File tempFile = null;
try {
// 获取应用程序的缓存目录
File cacheDir = context.getCacheDir();
// 创建临时文件
tempFile = File.createTempFile(prefix, suffix, cacheDir);
Log.d("TempFileUtil", "Temp file created: " + tempFile.getAbsolutePath());
} catch (IOException e) {
Log.e("TempFileUtil", "Error creating temp file: " + e.getMessage());
}
return tempFile;
}
}
在您的应用程序中,您可以使用上述示例代码来创建临时文件。请注意,这里使用了应用程序的缓存目录来创建临时文件。您也可以使用其他可用的目录,例如getFilesDir()
等。
请确保您的应用程序在清单文件中声明适当的权限,以便访问存储空间:
这是一个解决"Android 10上的createTempFile()权限被拒绝"问题的示例代码。请根据您的应用程序的需求进行适当的调整和修改。