私有目录
可以使用File API 进行保存与编辑删除等
共享目录
使用MediaStore
创建文件
public Uri createFile(Context context,String fileName) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
return null;
}
ContentResolver resolver =context.getContentResolver();
ContentValues values = new ContentValues();
//文件名称
values.put(MediaStore.Images.ImageColumns.DISPLAY_NAME, fileName);
//文件描述
values.put(MediaStore.Images.ImageColumns.DESCRIPTION, fileName);
//设置文件类型
values.put(MediaStore.Images.ImageColumns.MIME_TYPE, "image/jpeg");
//注意MediaStore.Downloads.RELATIVE_PATH需要targetVersion=29,
//故该方法只可在Android10的手机上执行
values.put(MediaStore.Images.ImageColumns.RELATIVE_PATH, "Download" + File.separator +"temp");
return resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
}
保存文件
public static boolean saveBitmap(Uri uri, Bitmap bitmap) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
return null;
}
OutputStream outputStream = null;
try {
outputStream = context.getContentResolver().openOutputStream(uri);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream);
outputStream.flush();
outputStream.close();
Toast.makeText(context,"保存成功",
Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(context,"保存失败",
Toast.LENGTH_SHORT).show();
return false;
}
return true;
}
删除文件
/**
* @param uri 文件uri
* @return
*/
public boolean deleteFile(Context context, Uri uri) {
return context.getContentResolver().delete(uri, null, null) > 0;
}