Проблема с разрешением Android на прикрепление файла базы данных, расположенного в хранилище приложенийAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с разрешением Android на прикрепление файла базы данных, расположенного в хранилище приложений

Сообщение Anonymous »

Что не так с этим кодом? Я думаю, что с разрешением что-то не так, цель состоит в том, чтобы прикрепить файл базы данных SQLite к электронной почте, однако ниже приведены части кода, связанные с ним:
сначала — содержимое манифеста:

Код: Выделить всё

        android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">


второй — file_path.xml и функция подключения базы данных:

Код: Выделить всё

private fun sendLocationHistoryEmail() {
val databasePath = requireContext().getDatabasePath("LocationHistoryDB")

if (!databasePath.exists()) {
Toast.makeText(requireContext(), "No location history database available to send.", Toast.LENGTH_SHORT).show()
return
}

val subject = "Location History Database"
val body = "Please find the location history database attached."
val recipient = "derakhshanpazhuhesh@gmail.com"
val uri = FileProvider.getUriForFile(
requireContext(),
"${requireContext().packageName}.provider",
databasePath
)

val emailIntent = Intent(Intent.ACTION_SEND).apply {
Log.d("FileProviderURI", uri.toString())
type = "application/octet-stream" // Generic MIME type for binary data
putExtra(Intent.EXTRA_EMAIL, arrayOf(recipient))
putExtra(Intent.EXTRA_SUBJECT, subject)
putExtra(Intent.EXTRA_TEXT, body)
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
putExtra(Intent.EXTRA_STREAM, uri)
}

try {
startActivity(Intent.createChooser(emailIntent, "Send Email"))
} catch (e: Exception) {
Toast.makeText(requireContext(), "No email clients installed.", Toast.LENGTH_SHORT).show()
}
}
и это ошибка, которую я вижу при использовании этой функции:

E Запись исключения в посылку (спросите Gemini )
java.lang.SecurityException: отказ в разрешении: чтение androidx.core.content.FileProvider uri content://com.example.voltage.provider/databases/LocationHistoryDB из pid=11552, uid=1000 требует, чтобы поставщик был экспортирован, или грантUriPermission()
в android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:879)
в android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java) :707)
в android.content.ContentProvider$Transport.query(ContentProvider.java:246)
в android.content.ContentProviderNative.onTransact(ContentProviderNative.java:107)
в android.os.Binder.execTransactInternal(Binder. java:1280)
в android.os.Binder.execTransact(Binder.java:1244)


E Запись исключения в посылку (спросите Gemini)java.lang.SecurityException: отказ в разрешении: чтение androidx.core.content.FileProvider uri content://com.example.voltage.provider/databases/LocationHistoryDB из pid=11552, uid=1000 требует экспорта поставщика или GrantUriPermission()
в android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:879)
в android.content.ContentProvider$Transport.enforceReadPermission (ContentProvider.java:707)
в android.content.ContentProvider$Transport.query(ContentProvider.java:246)
в android.content.ContentProviderNative.onTransact(ContentProviderNative.java:107)
в android.os.Binder.execTransactInternal(Binder. java:1280)
в android.os.Binder.execTransact(Binder.java:1244)


E Запись исключения в посылку (спросите Gemini)java.lang.SecurityException: отказ в разрешении: чтение androidx.core.content.FileProvider uri content://com.example.voltage.provider/databases/LocationHistoryDB из pid=11552, uid=1000 требует экспорта поставщика или GrantUriPermission()
в android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:879)
в android.content.ContentProvider$Transport.enforceReadPermission (ContentProvider.java:707)
в android.content.ContentProvider$Transport.query(ContentProvider.java:246)
в android.content.ContentProviderNative.onTransact(ContentProviderNative.java:107)
в android.os.Binder.execTransactInternal(Binder. java:1280)
в android.os.Binder.execTransact(Binder.java:1244)


Подробнее здесь: https://stackoverflow.com/questions/792 ... app-storag
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Прикрепление файла любого типа в приложении Android?
    Anonymous » » в форуме Android
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Android: Проблема с разрешением на внешнее хранилище:
    Anonymous » » в форуме Android
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Android: Проблема с разрешением на внешнее хранилище:
    Anonymous » » в форуме Android
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Невозможно увидеть схемы базы данных, отличные от базы данных по умолчанию, в eclipse IDE для базы данных postgreSQL при
    Anonymous » » в форуме JAVA
    0 Ответы
    283 Просмотры
    Последнее сообщение Anonymous
  • Размытие контента, расположенного за карточкой, с помощью Jetpack Compose на Android
    Anonymous » » в форуме Android
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»