EACCES(权限被拒绝)Android
EACCES (Permission denied) Android
目标:要在 image/content
上执行压缩,使用 intent 通过外部源(例如:SD 卡、内部或驱动器)检索。
我能够获取检索到的内容的实际路径,但是当我尝试使用压缩库 (zetbaitsu/Compressor) 对其进行压缩时,出现抛出错误
open failed: EACCES (Permission denied).
我已经交叉检查了我的权限并尝试了多种方法来确认权限访问,仍然是抛出错误。
这是我的函数:
void handleSendImage(Intent intent) {
try {
Uri imageUri = intent.getParcelableExtra(Intent.EXTRA_STREAM);
Log.d(TAG, "handleSendImage: " + imageUri.toString());
File imageFile = new File(getFilePath(this, imageUri));
Log.d(TAG, "handleSendImage: " + Uri.fromFile(imageFile));
File compressedFile = new Compressor(this).compressToFile(imageFile);
} catch (Exception e) {
Log.e(TAG, "handleSendImage: " + e.getMessage());
}
}
这是我的日志输出:
handleSendImage: content://com.android.providers.media.documents/document/image%3A30
handleSendImage: file:///storage/emulated/0/Download/4c568534307d605ed94878dc06d933ee.jpg
handleSendImage: /storage/emulated/0/Download/4c568534307d605ed94878dc06d933ee.jpg: open failed: EACCES (Permission denied)
android:requestLegacyExternalStorage="true"
将此添加到清单文件中,但这在 android11
中不起作用
目标:要在 image/content
上执行压缩,使用 intent 通过外部源(例如:SD 卡、内部或驱动器)检索。
我能够获取检索到的内容的实际路径,但是当我尝试使用压缩库 (zetbaitsu/Compressor) 对其进行压缩时,出现抛出错误
open failed: EACCES (Permission denied).
我已经交叉检查了我的权限并尝试了多种方法来确认权限访问,仍然是抛出错误。
这是我的函数:
void handleSendImage(Intent intent) {
try {
Uri imageUri = intent.getParcelableExtra(Intent.EXTRA_STREAM);
Log.d(TAG, "handleSendImage: " + imageUri.toString());
File imageFile = new File(getFilePath(this, imageUri));
Log.d(TAG, "handleSendImage: " + Uri.fromFile(imageFile));
File compressedFile = new Compressor(this).compressToFile(imageFile);
} catch (Exception e) {
Log.e(TAG, "handleSendImage: " + e.getMessage());
}
}
这是我的日志输出:
handleSendImage: content://com.android.providers.media.documents/document/image%3A30
handleSendImage: file:///storage/emulated/0/Download/4c568534307d605ed94878dc06d933ee.jpg
handleSendImage: /storage/emulated/0/Download/4c568534307d605ed94878dc06d933ee.jpg: open failed: EACCES (Permission denied)
android:requestLegacyExternalStorage="true"
将此添加到清单文件中,但这在 android11
中不起作用