[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/android/data-migration-scoped-storage":3,"mdc--c8e1gd-key":540,"mdc-p71l3h-key":551,"mdc-kkuy71-key":559,"mdc--l7yg06-key":567,"mdc--62d7o3-key":575,"mdc-ykyd5q-key":590,"mdc-ef1yms-key":621,"related-/guides/android/scoped-storage-access-framework,/errors/android/storage_access_manager_error,/guides/android/file-permissions-android":648,"mdc-3m1cnk-key":649,"mdc-wd428x-key":679,"mdc-4vqayh-key":706},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":471,"code":471,"createdAt":472,"description":473,"difficulty":474,"draft":475,"estimatedTime":476,"extension":477,"faq":478,"howToSteps":491,"howToTotalTime":510,"image":471,"keywords":511,"locale":519,"meta":520,"navigation":521,"path":522,"platform":523,"related":524,"section":528,"seo":529,"severity":471,"stem":530,"summary":531,"tags":532,"twitterCreator":471,"twitterSite":471,"type":538,"updatedAt":472,"__hash__":539},"content_ru/guides/android/data-migration-scoped-storage.md","Перенос данных в Scoped Storage на Android: пошаговая инструкция",[7,8,9,10],"Android 10 (API 29)","Android 11 (API 30)","Android 12 (API 31)","Android 13 (API 33)","FixPedia Team",{"type":13,"value":14,"toc":457},"minimark",[15,20,29,33,57,61,66,77,81,88,153,160,190,197,201,204,223,226,263,266,270,277,286,301,305,308,347,350,354,368,372,390,394,453],[16,17,19],"h2",{"id":18},"введение","Введение",[21,22,23,24,28],"p",{},"С Android 10+ Google ввёл ",[25,26,27],"strong",{},"Scoped Storage"," — новую модель хранения, которая ограничивает прямое приложение-специфическое взаимодействие с файлами во внешней памяти. Это повышение приватности иногда приводит к «исчезновению» данных, если приложение не обновлено для работы с новой моделью. В этом руководстве вы узнаете, как перенести существующие данные в соответствующее пространство хранения, сохранив доступность и целостность файлов.",[16,30,32],{"id":31},"требования","Требования",[34,35,36,40,43,51,54],"ul",{},[37,38,39],"li",{},"Устройство под управлением Android 10 (API 29) или выше (рекомендуется Android 12+ для стабильной работы File Provider).",[37,41,42],{},"Разработанный Android-код приложения (Android Studio проект), в котором нужно выполнить миграцию.",[37,44,45,46,50],{},"Доступ к компьютеру с ",[47,48,49],"code",{},"adb"," (Android Debug Bridge) для массовых операций.",[37,52,53],{},"Базовое понимание Kotlin/Java и XML-разметки AndroidManifest.",[37,55,56],{},"Резервная копия важных файлов на случай непредвиденных ситуаций.",[16,58,60],{"id":59},"пошаговая-инструкция","Пошаговая инструкция",[62,63,65],"h3",{"id":64},"шаг-1-проверьте-текущую-структуру-хранения","Шаг 1: Проверьте текущую структуру хранения",[21,67,68,69,72,73,76],{},"Откройте ",[25,70,71],{},"Настройки → Хранилище → Internal storage"," и найдите директорию вашего приложения (обычно ",[47,74,75],{},"/storage/emulated/0/app_name/","). Запишите относительный путь, поскольку он понадобится для перемещения данных.",[62,78,80],{"id":79},"шаг-2-создайте-app-specific-директорию-с-использованием-file-provider","Шаг 2: Создайте app-specific директорию с использованием File Provider",[21,82,83,84,87],{},"Добавьте в ",[47,85,86],{},"AndroidManifest.xml"," объявление провайдера:",[89,90,95],"pre",{"className":91,"code":92,"language":93,"meta":94,"style":94},"language-xml shiki shiki-themes github-light github-dark","\u003Cprovider\n    android:name=\"androidx.core.content.FileProvider\"\n    android:authorities=\"com.example.fileprovider\"\n    android:exported=\"false\"\n    android:grantUriPermissions=\"true\">\n    \u003Cmeta-data\n        android:name=\"android.support.FILE_PROVIDER_PATHS\"\n        android:resource=\"@xml/file_paths\" />\n\u003C/provider>\n","xml","",[47,96,97,105,111,117,123,129,135,141,147],{"__ignoreMap":94},[98,99,102],"span",{"class":100,"line":101},"line",1,[98,103,104],{},"\u003Cprovider\n",[98,106,108],{"class":100,"line":107},2,[98,109,110],{},"    android:name=\"androidx.core.content.FileProvider\"\n",[98,112,114],{"class":100,"line":113},3,[98,115,116],{},"    android:authorities=\"com.example.fileprovider\"\n",[98,118,120],{"class":100,"line":119},4,[98,121,122],{},"    android:exported=\"false\"\n",[98,124,126],{"class":100,"line":125},5,[98,127,128],{},"    android:grantUriPermissions=\"true\">\n",[98,130,132],{"class":100,"line":131},6,[98,133,134],{},"    \u003Cmeta-data\n",[98,136,138],{"class":100,"line":137},7,[98,139,140],{},"        android:name=\"android.support.FILE_PROVIDER_PATHS\"\n",[98,142,144],{"class":100,"line":143},8,[98,145,146],{},"        android:resource=\"@xml/file_paths\" />\n",[98,148,150],{"class":100,"line":149},9,[98,151,152],{},"\u003C/provider>\n",[21,154,155,156,159],{},"Создайте ресурс ",[47,157,158],{},"res/xml/file_paths.xml",":",[89,161,163],{"className":91,"code":162,"language":93,"meta":94,"style":94},"\u003Cpaths xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    \u003Cfiles-path name=\"my_files\" path=\".\"/>\n    \u003Cimages-path name=\"my_images\" path=\"pictures/\"/>\n    \u003Cdocuments-path name=\"my_docs\" path=\"Documents/\"/>\n\u003C/paths>\n",[47,164,165,170,175,180,185],{"__ignoreMap":94},[98,166,167],{"class":100,"line":101},[98,168,169],{},"\u003Cpaths xmlns:android=\"http://schemas.android.com/apk/res/android\">\n",[98,171,172],{"class":100,"line":107},[98,173,174],{},"    \u003Cfiles-path name=\"my_files\" path=\".\"/>\n",[98,176,177],{"class":100,"line":113},[98,178,179],{},"    \u003Cimages-path name=\"my_images\" path=\"pictures/\"/>\n",[98,181,182],{"class":100,"line":119},[98,183,184],{},"    \u003Cdocuments-path name=\"my_docs\" path=\"Documents/\"/>\n",[98,186,187],{"class":100,"line":125},[98,188,189],{},"\u003C/paths>\n",[21,191,192,193,196],{},"Теперь приложение может безопасно выдавать ",[47,194,195],{},"content://"," URI для файлов, находящихся в этих директориях.",[62,198,200],{"id":199},"шаг-3-переместите-существующие-файлы-в-новую-директорию","Шаг 3: Переместите существующие файлы в новую директорию",[21,202,203],{},"Для массового перемещения через ADB выполните:",[89,205,209],{"className":206,"code":207,"language":208,"meta":94,"style":94},"language-bash shiki shiki-themes github-light github-dark","adb shell \"mv /storage/emulated/0/app_name/old_dir/* /storage/emulated/0/app_name/files/\"\n","bash",[47,210,211],{"__ignoreMap":94},[98,212,213,216,220],{"class":100,"line":101},[98,214,49],{"class":215},"sScJk",[98,217,219],{"class":218},"sZZnC"," shell",[98,221,222],{"class":218}," \"mv /storage/emulated/0/app_name/old_dir/* /storage/emulated/0/app_name/files/\"\n",[21,224,225],{},"Для автоматизированного перемещения в коде Kotlin:",[89,227,231],{"className":228,"code":229,"language":230,"meta":94,"style":94},"language-kotlin shiki shiki-themes github-light github-dark","val src = File(getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS), \"old\")\nval dst = getExternalFilesDir(Environment.DIRECTORY_PICTURES)\nsrc.listFiles()?.forEach { file ->\n    val target = File(dst, file.name)\n    file.copyTo(target, overwrite = true)\n}\n","kotlin",[47,232,233,238,243,248,253,258],{"__ignoreMap":94},[98,234,235],{"class":100,"line":101},[98,236,237],{},"val src = File(getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS), \"old\")\n",[98,239,240],{"class":100,"line":107},[98,241,242],{},"val dst = getExternalFilesDir(Environment.DIRECTORY_PICTURES)\n",[98,244,245],{"class":100,"line":113},[98,246,247],{},"src.listFiles()?.forEach { file ->\n",[98,249,250],{"class":100,"line":119},[98,251,252],{},"    val target = File(dst, file.name)\n",[98,254,255],{"class":100,"line":125},[98,256,257],{},"    file.copyTo(target, overwrite = true)\n",[98,259,260],{"class":100,"line":131},[98,261,262],{},"}\n",[264,265],"in-article-ad",{},[62,267,269],{"id":268},"шаг-4-обновите-uri-для-существующих-файлов","Шаг 4: Обновите URI для существующих файлов",[21,271,272,273,276],{},"Если приложение ранее использовало прямые ",[47,274,275],{},"file://"," URI, замените их на URI, полученные через File Provider:",[89,278,280],{"className":228,"code":279,"language":230,"meta":94,"style":94},"val uri = FileProvider.getUriForFile(this, \"com.example.fileprovider\", imageFile)\n",[47,281,282],{"__ignoreMap":94},[98,283,284],{"class":100,"line":101},[98,285,279],{},[21,287,288,289,292,293,296,297,300],{},"Теперь вы можете безопасно передавать ",[47,290,291],{},"uri"," в ",[47,294,295],{},"Intent"," или ",[47,298,299],{},"ContentResolver",".",[62,302,304],{"id":303},"шаг-5-проверьте-доступность-через-mediastore-для-медиафайлов","Шаг 5: Проверьте доступность через MediaStore (для медиафайлов)",[21,306,307],{},"Для изображений и видео добавьте записи в MediaStore:",[89,309,311],{"className":228,"code":310,"language":230,"meta":94,"style":94},"val imageUri = MediaStore.Images.Media.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY)\nval values = ContentValues().apply {\n    put(MediaStore.Images.Media.DISPLAY_NAME, \"new_image.jpg\")\n    put(MediaStore.Images.Media.MIME_TYPE, \"image/jpeg\")\n    put(MediaStore.Images.Media.DATA, imagePath)\n}\ncontentResolver.insert(imageUri, values)\n",[47,312,313,318,323,328,333,338,342],{"__ignoreMap":94},[98,314,315],{"class":100,"line":101},[98,316,317],{},"val imageUri = MediaStore.Images.Media.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY)\n",[98,319,320],{"class":100,"line":107},[98,321,322],{},"val values = ContentValues().apply {\n",[98,324,325],{"class":100,"line":113},[98,326,327],{},"    put(MediaStore.Images.Media.DISPLAY_NAME, \"new_image.jpg\")\n",[98,329,330],{"class":100,"line":119},[98,331,332],{},"    put(MediaStore.Images.Media.MIME_TYPE, \"image/jpeg\")\n",[98,334,335],{"class":100,"line":125},[98,336,337],{},"    put(MediaStore.Images.Media.DATA, imagePath)\n",[98,339,340],{"class":100,"line":131},[98,341,262],{},[98,343,344],{"class":100,"line":137},[98,345,346],{},"contentResolver.insert(imageUri, values)\n",[21,348,349],{},"Данные становятся доступны через системные приложения (Галерея, Фотографии) без дополнительных прав.",[62,351,353],{"id":352},"шаг-6-запустите-приложение-и-проверьте-работу","Шаг 6: Запустите приложение и проверьте работу",[21,355,356,357,360,361,296,364,367],{},"Запустите приложение, откройте раздел «Мои файлы» или «Галерея». Убедитесь, что все ранее существовавшие файлы доступны по тем же именам. Если что-то пропало, найдите их в ",[47,358,359],{},"DCIM",", ",[47,362,363],{},"Pictures",[47,365,366],{},"Documents"," — именно туда их поместил File Provider.",[16,369,371],{"id":370},"проверка-результата","Проверка результата",[34,373,374,377,384,387],{},[37,375,376],{},"Все файлы отображаются в приложении.",[37,378,379,380,383],{},"Системные инструменты (например, файловый менеджер) также видят новые директории (",[47,381,382],{},"/storage/emulated/0/app_name/files/",").",[37,385,386],{},"URI, выданные через File Provider, открываются корректно в других приложениях.",[37,388,389],{},"Нет предупреждений о доступе к файлам в панели «Приложения → Разрешения».",[16,391,393],{"id":392},"возможные-проблемы","Возможные проблемы",[34,395,396,413,427,440],{},[37,397,398,401,402,405,406,409,410,300],{},[25,399,400],{},"Потеря доступа к файлам после перезагрузки"," – убедитесь, что вы добавили ",[47,403,404],{},"\u003Cprovider>"," с ",[47,407,408],{},"android:exported=\"false\""," и правильно настроили ",[47,411,412],{},"authorities",[37,414,415,418,419,422,423,426],{},[25,416,417],{},"Неправильные пути в MediaStore"," – укажите правильный ",[47,420,421],{},"MIME_TYPE"," и ",[47,424,425],{},"DATA","; проверьте, что путь существует в файловой системе.",[37,428,429,432,433,436,437,300],{},[25,430,431],{},"Сбой копирования через ADB"," – проверьте права: ",[47,434,435],{},"adb shell"," должен запускаться от пользователя, имеющего доступ к ",[47,438,439],{},"/storage/emulated/0",[37,441,442,445,446,296,449,452],{},[25,443,444],{},"Файлы всё ещё недоступны"," – запустите ",[47,447,448],{},"ContentResolver.loadThumbnail",[47,450,451],{},"MediaScannerConnection"," для обновления индексации.",[454,455,456],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":94,"searchDepth":107,"depth":107,"links":458},[459,460,461,469,470],{"id":18,"depth":107,"text":19},{"id":31,"depth":107,"text":32},{"id":59,"depth":107,"text":60,"children":462},[463,464,465,466,467,468],{"id":64,"depth":113,"text":65},{"id":79,"depth":113,"text":80},{"id":199,"depth":113,"text":200},{"id":268,"depth":113,"text":269},{"id":303,"depth":113,"text":304},{"id":352,"depth":113,"text":353},{"id":370,"depth":107,"text":371},{"id":392,"depth":107,"text":393},null,"2026-07-22 08:35:59","Узнайте, как выполнить перенос данных в Scoped Storage на Android. Пошаговая инструкция с командами и советами для быстрой миграции за 5 минут.","medium",false,"5-10 мин","md",[479,482,485,488],{"question":480,"answer":481},"Почему приложения не видят мои файлы после обновления до Android 10?","В Android 10 введён Scoped Storage, который ограничивает доступ к внешней памяти. Необходимо перенести данные в app-specific directories или использовать Storage Access Framework.",{"question":483,"answer":484},"Можно ли отменить миграцию, если что-то пошло не так?","Да, вы всегда можете вручную восстановить файлы из резервной копии или использовать ADB для копирования данных обратно перед повторным запуском миграции.",{"question":486,"answer":487},"Какие файлы совместимы с Scoped Storage?","Изображения, видео, аудио и PDF можно хранить через MediaStore. Другие типы файлов лучше перемещать в приложение-специфические директории.",{"question":489,"answer":490},"Требуется ли root-доступ для переноса данных?","Нет, миграция может выполняться без root. Используйте встроенные инструменты, такие как File Provider и Intent для выбора файлов.",[492,495,498,501,504,507],{"name":493,"text":494},"Проверьте текущую структуру хранения","Откройте «Настройки → Хранилище → Internal storage» и найдите директорию приложения. Скопируйте относительный путь (например, `/storage/emulated/0/app_name/`).",{"name":496,"text":497},"Создайте app-specific директорию с использованием File Provider","Добавьте в `AndroidManifest.xml` `\u003Cprovider android:name=\"androidx.core.content.FileProvider\" ...>` и определите `\u003Cpaths>` для новой директории. Клиентские приложения смогут обращаться к ней по URI.",{"name":499,"text":500},"Переместите существующие файлы в новую директорию","Используйте `adb shell mv /storage/emulated/0/app_name/old_dir/* /storage/emulated/0/app_name/files/` для перемещения данных. Либо в коде Java/Kotlin выполните:\n\n```kotlin\nval src = File(getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS), \"old\")\nval dst = getExternalFilesDir(Environment.DIRECTORY_PICTURES)\nsrc.listFiles()?.forEach { file ->\n    val target = File(dst, file.name)\n    file.copyTo(target, overwrite = true)\n}\n```",{"name":502,"text":503},"Обновите URI для существующих файлов","Если приложение использовало прямые пути, замените их на `content://` URI через FileProvider. Пример для изображения:\n\n```kotlin\nval uri = FileProvider.getUriForFile(this, \"com.example.fileprovider\", imageFile)\n```",{"name":505,"text":506},"Проверьте доступность через MediaStore (для медиафайлов)","Добавьте записи в таблицу `MediaStore.Images.Media` или `MediaStore.Video.Media`, используя `ContentResolver`. Пример:\n\n```kotlin\nval imageUri = MediaStore.Images.Media.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY)\nval values = ContentValues().apply {\n    put(MediaStore.Images.Media.DISPLAY_NAME, \"new_image.jpg\")\n    put(MediaStore.Images.Media.MIME_TYPE, \"image/jpeg\")\n    put(MediaStore.Images.Media.DATA, imagePath)\n}\ncontentResolver.insert(imageUri, values)\n```",{"name":508,"text":509},"Запустите приложение и проверьте работу","Запустите приложение, откройте меню «Мои файлы» или «Галерея» и убедитесь, что все данные доступны. Если что-то пропало, найдите потерянные файлы в `DCIM`, `Pictures` или `Documents`.","PT8M",[512,513,514,515,516,517,518],"Scoped Storage Android","миграция Scoped Storage","перенос данных Android","Android 10 storage","переместить файлы Android","доступ к файлам Android","область хранения Android","ru_RU",{},true,"/guides/android/data-migration-scoped-storage","android",[525,526,527],"/guides/android/scoped-storage-access-framework","/errors/android/storage_access_manager_error","/guides/android/file-permissions-android","Гайды Android",{"title":5,"description":473},"guides/android/data-migration-scoped-storage","При переходе на Android 10+ Scoped Storage ограничивает доступ к файлам. Это руководство объясняет, как перенести существующие данные в новое пространство хранения, сохранив доступность и приватность.",[533,27,534,535,536,537],"Android","миграция данных","Storage","файлы","инструкции","guide","J8RxmvOn5mJLkCXwIcFNWrd9XZtWpJMc5JdwAJpCPbk",{"data":541,"body":542},{},{"type":543,"children":544},"root",[545],{"type":546,"tag":21,"props":547,"children":548},"element",{},[549],{"type":550,"value":481},"text",{"data":552,"body":553},{},{"type":543,"children":554},[555],{"type":546,"tag":21,"props":556,"children":557},{},[558],{"type":550,"value":484},{"data":560,"body":561},{},{"type":543,"children":562},[563],{"type":546,"tag":21,"props":564,"children":565},{},[566],{"type":550,"value":487},{"data":568,"body":569},{},{"type":543,"children":570},[571],{"type":546,"tag":21,"props":572,"children":573},{},[574],{"type":550,"value":490},{"data":576,"body":577},{},{"type":543,"children":578},[579],{"type":546,"tag":21,"props":580,"children":581},{},[582,584,589],{"type":550,"value":583},"Откройте «Настройки → Хранилище → Internal storage» и найдите директорию приложения. Скопируйте относительный путь (например, ",{"type":546,"tag":47,"props":585,"children":587},{"className":586},[],[588],{"type":550,"value":75},{"type":550,"value":383},{"data":591,"body":592},{},{"type":543,"children":593},[594],{"type":546,"tag":21,"props":595,"children":596},{},[597,598,603,605,611,613,619],{"type":550,"value":83},{"type":546,"tag":47,"props":599,"children":601},{"className":600},[],[602],{"type":550,"value":86},{"type":550,"value":604}," ",{"type":546,"tag":47,"props":606,"children":608},{"className":607},[],[609],{"type":550,"value":610},"\u003Cprovider android:name=\"androidx.core.content.FileProvider\" ...>",{"type":550,"value":612}," и определите ",{"type":546,"tag":47,"props":614,"children":616},{"className":615},[],[617],{"type":550,"value":618},"\u003Cpaths>",{"type":550,"value":620}," для новой директории. Клиентские приложения смогут обращаться к ней по URI.",{"data":622,"body":623},{},{"type":543,"children":624},[625],{"type":546,"tag":21,"props":626,"children":627},{},[628,630,635,636,641,642,647],{"type":550,"value":629},"Запустите приложение, откройте меню «Мои файлы» или «Галерея» и убедитесь, что все данные доступны. Если что-то пропало, найдите потерянные файлы в ",{"type":546,"tag":47,"props":631,"children":633},{"className":632},[],[634],{"type":550,"value":359},{"type":550,"value":360},{"type":546,"tag":47,"props":637,"children":639},{"className":638},[],[640],{"type":550,"value":363},{"type":550,"value":296},{"type":546,"tag":47,"props":643,"children":645},{"className":644},[],[646],{"type":550,"value":366},{"type":550,"value":300},[],{"data":650,"body":651},{},{"type":543,"children":652},[653,666,675],{"type":546,"tag":21,"props":654,"children":655},{},[656,658,664],{"type":550,"value":657},"Используйте ",{"type":546,"tag":47,"props":659,"children":661},{"className":660},[],[662],{"type":550,"value":663},"adb shell mv /storage/emulated/0/app_name/old_dir/* /storage/emulated/0/app_name/files/",{"type":550,"value":665}," для перемещения данных. Либо в коде Java/Kotlin выполните:",{"type":546,"tag":89,"props":667,"children":670},{"className":668,"code":229,"language":230,"meta":94,"style":669},"language-kotlin","undefined",[671],{"type":546,"tag":47,"props":672,"children":673},{"__ignoreMap":94},[674],{"type":550,"value":229},{"type":546,"tag":454,"props":676,"children":677},{},[678],{"type":550,"value":94},{"data":680,"body":681},{},{"type":543,"children":682},[683,695,702],{"type":546,"tag":21,"props":684,"children":685},{},[686,688,693],{"type":550,"value":687},"Если приложение использовало прямые пути, замените их на ",{"type":546,"tag":47,"props":689,"children":691},{"className":690},[],[692],{"type":550,"value":195},{"type":550,"value":694}," URI через FileProvider. Пример для изображения:",{"type":546,"tag":89,"props":696,"children":697},{"className":668,"code":279,"language":230,"meta":94,"style":669},[698],{"type":546,"tag":47,"props":699,"children":700},{"__ignoreMap":94},[701],{"type":550,"value":279},{"type":546,"tag":454,"props":703,"children":704},{},[705],{"type":550,"value":94},{"data":707,"body":708},{},{"type":543,"children":709},[710,737,744],{"type":546,"tag":21,"props":711,"children":712},{},[713,715,721,722,728,730,735],{"type":550,"value":714},"Добавьте записи в таблицу ",{"type":546,"tag":47,"props":716,"children":718},{"className":717},[],[719],{"type":550,"value":720},"MediaStore.Images.Media",{"type":550,"value":296},{"type":546,"tag":47,"props":723,"children":725},{"className":724},[],[726],{"type":550,"value":727},"MediaStore.Video.Media",{"type":550,"value":729},", используя ",{"type":546,"tag":47,"props":731,"children":733},{"className":732},[],[734],{"type":550,"value":299},{"type":550,"value":736},". Пример:",{"type":546,"tag":89,"props":738,"children":739},{"className":668,"code":310,"language":230,"meta":94,"style":669},[740],{"type":546,"tag":47,"props":741,"children":742},{"__ignoreMap":94},[743],{"type":550,"value":310},{"type":546,"tag":454,"props":745,"children":746},{},[747],{"type":550,"value":94}]