java - Android 11 上 createDeleteRequest() 的 OnActivtyResult
问题描述
不幸的是,Android 11 改变了管理存储权限的方式。
我想做删除和重命名函数并修改我的代码如下:
private void deleteFile(int p, View view){
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Supprimer ?").setMessage(videoFolder.get(p).getTitle()).setNegativeButton("Annuler", (dialog, which) -> {
}).setPositiveButton("Oui", (dialog, which) -> {
ArrayList<Uri> fichiers = new ArrayList<>();
Uri contentUri = ContentUris.withAppendedId(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, Long.parseLong(videoFolder.get(p).getId()));
File file = new File(videoFolder.get(p).getPath());
fichiers.add(contentUri);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
PendingIntent demande = MediaStore.createDeleteRequest(context.getContentResolver(), fichiers);
try {
((Activity) context).startIntentSenderForResult(demande.getIntentSender(),1,new Intent(), 0,0,0);
} catch (IntentSender.SendIntentException e) {
e.printStackTrace();
}
}else {
boolean deleted = file.delete();
if (deleted){
context.getApplicationContext().getContentResolver().delete(contentUri, null, null);
videoFolder.remove(p);
notifyItemRemoved(p);
notifyItemRangeChanged(p,videoFolder.size());
Snackbar.make(view, "Fichier supprimé avec succès", Snackbar.LENGTH_SHORT).show();
}else{
Snackbar.make(view, "Erreur, le fichier n'a pas été supprimé", Snackbar.LENGTH_SHORT).show();
}
}
}).show();
}
但我不知道如何onActivityResult
才能做到这file.delete()
一点。
有人能帮我吗?谢谢
解决方案
推荐阅读
- magnolia - magnolia 观察模块中的 Listenerconfigurations - 最佳实践问题
- react-native - 反应导航 5.0 标题按钮
- javascript - 为什么我的 JS 不更新我的数据主题?
- swift - 以编程方式在具有分段控制的 UIView 之间滑动
- github-actions - 在 Github Actions 中映射环境变量
- javascript - 将 ID 保存在变量中并为其添加样式
- docker - Docker中的Kakfa分区
- amazon-web-services - 在 postman 中为 AWS Cloudwatch 构建 GetMetricData API
- python - Python ctypes:没有按预期加载dll
- couchbase - Couchbase 中的条件更新插入