Я следил за эта статья, чтобы сфотографировать в своем приложении, однако в статье автор указывает путь . для FileProvider.
<?xml version = "1.0" encoding = "utf-8"?>
<paths xmlns:android = "http://schemas.android.com/apk/res/android">
<external-path name = "external_files" path = "."/>
</paths>
Чему именно соответствует . и может ли это быть проблемой безопасности?
To what corresponds exactly
.
Он относится к каталогу, указанному вашим элементом. В корпус <external-path> это Environment.getExternalStorageDirectory().
Если бы вместо . у вас был foo, это указывало бы на подкаталог foo/ в каталоге, указанном вашим элементом.
can it be a security issue?
Только если вы делаете что-то действительно странное в своем Java-коде.
FileProvider нельзя экспортировать. Единственное, что может получить доступ к контенту, обслуживаемому этим поставщиком:
Обычно вы предоставляете разрешение через FLAG_GRANT_READ_URI_PERMISSION и / или FLAG_GRANT_WRITE_URI_PERMISSION на Intent. Это предоставляет доступ для чтения или записи к одному приложению, которое обрабатывает Intent для Uri, находящегося внутри этого Intent. Это очень ограниченное разрешение, и оно необходимо для успешного использования FileProvider.
Если вы обнаружите, что предоставляете разрешения другим способом, большему количеству приложений и большему количеству контента, возможно, это проблема безопасности. Но, опять же, он привязан к вашему Java-коду, а не столько к метаданным FileProvider.
К
Environment.getExternalStorageDirectory(). О какой проблеме безопасности вы думаете?