Как мы можем удалить файлы, не принадлежащие владельцу, в Android Q
Я не хочу использовать средство выбора файлов SAF
Можем ли мы напрямую запустить SAF для удаления файла
или есть лучшее решение
Я сталкивался с этим
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
try {
String uri1 = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI.toString();
String where = MediaStore.Audio.Media._ID + "=?";
String[] selectionArgs = new String[]{String.valueOf(songforpopup._id)};
int deleted = getApplicationContext().getContentResolver().delete(Uri.parse(uri1), where, selectionArgs);
Toast.makeText(AllSongsActivity.this, "" + deleted, Toast.LENGTH_SHORT).show();
if (deleted>=0){
Toast.makeText(AllSongsActivity.this, "Succesfully deleted in Android Q",
Toast.LENGTH_LONG).show();
}
} catch (SecurityException securityException) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
RecoverableSecurityException recoverableSecurityException;
if (securityException instanceof RecoverableSecurityException) {
recoverableSecurityException =
(RecoverableSecurityException)securityException;
} else {
throw new RuntimeException(
securityException.getMessage(), securityException);
}
IntentSender intentSender =recoverableSecurityException.getUserAction()
.getActionIntent().getIntentSender();
try {
startIntentSenderForResult(intentSender, DELETE_PERMISSION_REQUEST,
null, 0, 0, 0, null);
} catch (IntentSender.SendIntentException e) {
e.printStackTrace();
}
} else {
throw new RuntimeException(
securityException.getMessage(), securityException);
}
}
new AsyncListViewLoader().execute(Order);
timerDelayRunForScroll(100);
}
, но он не удаляет файл и не выдает исключение безопасности