Содержание
- Total Commander
- sdcard2 not writable on Tablet
- sdcard2 not writable on Tablet
- how to verify the drive is Read-only mount?
- Error writing to target file error 34
Total Commander
Forum — Public Discussion and Support
sdcard2 not writable on Tablet
sdcard2 not writable on Tablet
Post by *NCJuenger » 2012-06-24, 10:37 UTC
Hi, I’ve got the Problem that TotalCommander can not write to /mnt/sdcard2. It can open folders but writing simply fails (no error msg). When trying to create a folder I get a message «Folder can not be created».
TC: Version 1.03
Android: 3.2.1 (Honeycomb)
Brand: Toshiba AT200
SD-Card: 16GB SDHC (Class 6)
The included Filemanager (Toshiba Filemanager) can write to SDCard2 and create folders.
Post by *ghisler(Author) » 2012-06-25, 12:50 UTC
Post by *NCJuenger » 2012-06-25, 12:56 UTC
Thank you for the answer, this would be a pity but seems plausible.
The tablet is not rooted.
In case I can write with a 3rd party app to the sdcard I will pop up here again.
Post by *holohelge » 2012-06-25, 19:42 UTC
For information, I have the same problem as NCJuenger.
TC: Version 1.03
Android: 4.0.4 (ICS)
Brand: Medion Lifetab S9512
SD-Card: Medion 16GB SDHC (Class 6)
Post by *ghisler(Author) » 2012-06-28, 12:35 UTC
Post by *NCJuenger » 2012-07-02, 13:54 UTC
It seems to be a «strange» implementation of the WRITE_MEDIA_STORAGE permission. (compared to the WRITE_EXTERNAL_STORAGE permission)
According to Holohelges post this error seems still to exist in ICS.
The only thing TC4Android could do here is to also apply for WRITE_MEDIA_STORAGE Permission (Which it does I suppose). And to hope the OS allows it.
Post by *NCJuenger » 2012-08-13, 16:15 UTC
I’ve followed this problem through the forums.
#1: Some Tablet manufacturers (i.e. Samsung) seem to «circumvent» this problem in their android version explicitly.
#2: Currently it seems to help, when the SDCard is formatted with exFAT. I.e. with Windows 7.
Once source:
http://forums.computers.toshiba-europe.com/forums/thread.jspa?threadID=67848&tstart=0
exFAT may not be compatible with other some platforms (MP3-Players, cameras, OS)
how to verify the drive is Read-only mount?
Post by *tochinet » 2012-08-26, 21:13 UTC
Hi,
I was more than happy to discover that TC was ported to Android. Can’t live without it on PC. Still I was disappointed when many copy/Rename actions failed. I’m glad to see this is not due to errors.
One question: how can I verify if the USB or SD is RO-mounted or not?
Post by *NCJuenger » 2012-08-27, 06:34 UTC
Hi tochinet,
as far as I’ve learned the sd-card is not simply «RO-mounted» but instead it is a problem of access rights granted to the app or not. The result for TC stays the same anyways.
I know of no standard action to verify the access rights to your tablet. But you can simply install any other third party file manager and try to i.e. copy something on the sd-card. If it also fails this is no problem of TC alone.
This problem mostly applies to tablets. It started with the android version «Honeycomb» (3.x) and persisted on ICS (4.0.x).
Those tablets usually mount the internal flash memory to «/mnt/sdcard». If you insert an sdcard into those tablets those are mounted to «/mnt/sdcard2». And this read/only problem only applies to sdcard2 (the latter).
Usually this error does not occur in the pre-installed file manager supplied by the manufacturer. That one is granted the rights for read/write.
«Rooted» tablets should be able circumvent this problem (if it exists).
Источник
Error writing to target file error 34
Для функционирования программы необходимы права root пользователя.
Краткое описание:
Приложение для установки BusyBox.
Это приложение для установки BusyBox на большинство устройств с последующим его обновлением до актуальной версии.
Для тех, кто не знает что это и с чем его едят — читаем ТУТ. Перед тем, как задать свой вопрос, загляните в FAQ по программе. Если решили установить программу, то внимательно читаем предупреждение внизу.
-Как с помощью этой программы разогнать процессор?
-Никак. Busybox нужен для некоторых программ, выполняющих разгон. Вопросы по разгону задавайте в топике своего аппарата.
-Как узнать установлен ли Busybox и какая версия?
-Устанавливаем Android Terminal Emulator, пишем в нем busybox, если он установлен, то будет написана версия и выйдет краткая справка по коммандам.
— Для чего нужны команды busybox и что такое «Терминал»
— ® BusyBox (Пост #17964869)
— Можно ли удалить приложение после установки busybox?
-Да.
— Как решить проблему с поддержкой UTF8 (русских имен) в Рекавери после обновлении в нем Busybox?
— Сообщение №3779, автор FOV5
Бинарные файлы:
Версия для установки через рекавери: 1.30.1 (A10-11) ® BusyBox — Stephen (Stericson) (Пост Kzubec #106549574)
Версия для установки через рекавери: 1.30.1 ® BusyBox
Версия для установки через рекавери: 1.29.2 Сообщение №3822, автор dianamavrik
Версия для установки через рекавери: 1.29.2-YDS-201808012015 Сообщение №3810, автор siegheilx
Установка с ПК (через adb): ® BusyBox (Пост #35058356)
Версия: 62 Free Сообщение №3823, автор gar_alex
Версия: 68 Pro Rus ® BusyBox — Stephen (Stericson) (Пост Lisko_26 #79842914)
Версия: 68 Pro ® BusyBox — Stephen (Stericson) (Пост Alex0047 #75977624)
Версия: 67 Pro Rus Сообщение №3744, автор Lisko_26
Версия для установки через рекавери: 1.29.0 Сообщение №3794, автор siegheilx
Версия: 61 Free ® BusyBox (Пост Displax #74072815)
Версия: 67 Pro ® BusyBox (Пост alen2012 #74072798)
Версия для установки через рекавери: 1.28.4 Сообщение №3733, автор dianamavrik
1.28.3 для установки через рекавери
Версия: 66 Pro Rus Сообщение №3686, автор Lisko_26
Версия: 66 Pro Сообщение №3675, автор Alex0047
Версия: 59 Free Сообщение №3656, автор gar_alex
Версия: 65 Pro Rus Сообщение №3655, автор Lisko_26
Версия: 65 Pro Сообщение №3654, автор ciacia
Версия: 58 Free Сообщение №3646, автор staxx
1.28.1 для установки через рекавери
версия: 64 Pro Rus Сообщение №3647, автор Lisko_26
Версия: 64 Pro Сообщение №3645, автор Alex0047
версия: 62 Pro Rus ® BusyBox (Пост Lisko_26 #71084075)
версия: 56 Free ® BusyBox (Пост staxx #70562362)
Версия: 62 Pro Сообщение №3531, автор Alex0047
версия: 55 Free ® BusyBox (Пост staxx #67527210)
Версия: 61 Pro ® BusyBox (Пост Alex0047 #67523969)
версия 1.27.2 для установки через рекавери: ® BusyBox (Пост DanRub1995 #67505217)
версия: 59 Pro Rus ® BusyBox (Пост Lisko_26 #66213194)
версия 1.27.1 для установки через рекавери: ® BusyBox (Пост 1Senderman1 #64635578)
версия: 53 Free ® BusyBox (Пост gar_alex #65478422)
Версия: 60 Pro ® BusyBox (Пост Giacomino #67493567)
Версия: 59 Pro ® BusyBox (Пост Night Furry #65327374)
версия: 57 Pro Rus ® BusyBox (Пост Lisko_26 #63917345)
версия: 52 Free ® BusyBox (Пост gar_alex #63897061)
Версия: 57 Pro ® BusyBox (Пост Alex0047 #63857064)
версия 1.26.2 для установки через рекавери: ® BusyBox (Пост asanhel #58270523)
версия: 56 Pro Rus ® BusyBox (Пост Lisko_26 #62508106)
версия: 50 Free ® BusyBox (Пост Aivengo73 #60581062)
Версия: 56 Pro ® BusyBox (Пост Alex0047 #62495756)
Версия: 55 Pro ® BusyBox (Пост Alex0047 #60554354)
версия: 55 Pro Rus ® BusyBox (Пост Lisko_26 #60580353)
версия: 49 Free ® BusyBox (Пост And_RU #57202004)
версия: 54 Pro Rus ® BusyBox (Пост Lisko_26 #57187215)
версия: 54 Pro ® BusyBox (Пост Ramzes26 #57177922)
версия: 48 Free ® BusyBox (Пост And_RU #57178069)
версия 1.25.1 для установки через рекавери: ® BusyBox (Пост 1Senderman1 #54567790)
версия 1.24.2: ® BusyBox (Пост VernyjPes #49128262)
версия: 53 Pro ® BusyBox (Пост Alex0047 #56230445)
версия: 53 Pro Rus ® BusyBox (Пост Lisko_26 #56234302)
версия: 46 Free ® BusyBox (Пост And_RU #56232887)
версия: 52 Pro Rus ® BusyBox (Пост Lisko_26 #54156531)
версия: 45 Free ® BusyBox (Пост And_RU #55403021)
версия: 52 Pro ® BusyBox (Пост Giacomino #54119772)
версия: 44 Free ® BusyBox (Пост And_RU #54120825)
версия 1.24.2 для установки через рекавери: ® BusyBox (Пост 1Senderman1 #50578766)
Версия: 51 Pro Rus + Light ® BusyBox (Пост Lisko_26 #53040370)
версия: 51 Pro: ® BusyBox (Пост Alex0047 #53007886)
версия: 43 Free ® BusyBox (Пост And_RU #53015004)
версия: 50 Pro Rus ® BusyBox (Пост Lisko_26 #50588983)
версия: 50 Pro: ® BusyBox (Пост Alex0047 #50580002)
версия: 42 Free ® BusyBox (Пост And_RU #49906734)
версия: 43 Pro Rus ® BusyBox (Пост Lisko_26 #50527993)
версия: 43 Pro: ® BusyBox (Пост kljovyj #50526766)
версия 1.24.1 для установки через рекавери: ® BusyBox (Пост 1Senderman1 #46490581)
версия: 42 Pro:® BusyBox (Пост Alex0047 #50331499)
версия: 42 Pro Rus ® BusyBox (Пост Lisko_26 #50355762)
версия: 38 Pro Rus ® BusyBox (Пост kljovyj #50332949)
версия: 34 Pro Rus: ® BusyBox (Пост Lisko_26 #46262384)
версия: 37 Pro:® BusyBox (Пост Alex0047 #49905677)
версия: 37 Pro Rus ® BusyBox (Пост Lisko_26 #49915394)
версия: 41 Free ® BusyBox (Пост And_RU #49127882)
версия: 36 Pro Rus: ® BusyBox (Пост Lisko_26 #49131494)
версия: 36 Pro: ® BusyBox (Пост Alex0047 #49127826)
версия: 35 Pro: ® BusyBox (Пост Alex0047 #46981509)
версия: 35 Pro Rus: ® BusyBox (Пост Lisko_26 #46985819)
версия 1.24.1: ® BusyBox (Пост adeich #44327041)
версия: 40 Free ® BusyBox (Пост VLADFIONOV #46982029)
версия: 39 Free ® BusyBox (Пост And_RU #46250673)
версия: 34 Pro: ® BusyBox (Пост lsd15 #46249746)
версия 1.23.2 для установки через рекавери: ® BusyBox (Пост 1Senderman1 #42418822)
версия: 32 Pro ® BusyBox (Пост Alex0047 #45686134)
версия: 32 Pro Rus: ® BusyBox (Пост Lisko_26 #45687804)
версия: 38 Free ® BusyBox (Пост Aivengo73 #45692619)
версия: 31 Pro Rus: ® BusyBox (Пост Lisko_26 #45463795)
версия: 37 Free ® BusyBox (Пост And_RU #45458572)
версия: 31 Pro ® BusyBox (Пост Alex0047 #45440992)
версия: 30 Pro Rus: ® BusyBox (Пост Lisko_26 #44324450)
версия: 36 Free ® BusyBox (Пост And_RU #43061267)
версия: 30 Pro Original ® BusyBox (Пост lsd15 #44318631)
версия: 29 Pro Original ® BusyBox (Пост ogo2012 #43894372)
версия 1.23.2: ® BusyBox (Пост VernyjPes #40041285)
версия: 34 Free ® BusyBox (Пост And_RU #43061267)
версия: 28 Pro ® BusyBox (Пост pyshnyi #40041041)
версия: 32 Free ® BusyBox (Пост pro100hackerok #42049767)
версия: 30 Free ® BusyBox (Пост And_RU #41927479)
версия: 28 Pro Rus ® BusyBox (Пост Lisko_26 #40042293)
версия: 27 Pro Rus ® BusyBox (Пост Lisko_26 #38491189)
версия: 24 Free CWR ® BusyBox (Пост #36957066)
версия: 28 Pro beta ® BusyBox (Пост Giacomino #38729071)
версия: 27 Pro ® BusyBox (Пост Alex0047 #38486620)
версия: 23 Pro Rus https://4pda.to/forum/d…ox_Pro_23_src_sign.apk
версия: 25 Pro ® BusyBox (Пост #37843766)
версия: 1.23.0 ® BusyBox (Пост #36992846)
версия: 23 Pro ® BusyBox (Пост #37015306)
версия: 22 Pro Rus https://4pda.to/forum/d…x_Pro_v22_src_sign.apk
версия: 21 Rus https://4pda.to/forum/d…/stericson.busybox.apk
версия: 22 Pro ® BusyBox (Пост #36992613)
версия: 21 ® BusyBox (Пост #35978473)
Бинарные файлы: версия 1.23.1: ® BusyBox (Пост #37843910)
Бинарные файлы: версия: 1.22.1 ® BusyBox (Пост #28739597)
версия: 19 Pro ® BusyBox (Пост #35975898)
версия: 19 Pro Rus https://4pda.to/forum/d…02/BusyBox_Pro_v19.apk
версия: 19 Pro ® BusyBox (Пост #35975898)
версия: 19 ® BusyBox (Пост #35541660)
версия: 18 Pro ® BusyBox (Пост #35542650)
версия: 16 Pro Rus ® BusyBox (Пост #35541460)
версия: 16 Pro ® BusyBox (Пост #35534193)
версия: 15 Pro Rus ® BusyBox (Пост #34754841)
версия: 15 Pro ® BusyBox (Пост #32659155)
версия: 14 Pro Rus https://4pda.to/forum/d…420/BB_pro_v14_Rus.apk
версия: 14 Pro ® BusyBox (Пост #32479193)
версия: 13 Pro Rus ® BusyBox (Пост #32388186)
версия: 13 Pro ® BusyBox (Пост #30863820)
версия: 10.9.2 Pro Rus BusyBox+Pro+v10.9.2+RUS+(REV+1).apk ( 3.25 МБ )
версия: 11 Pro https://4pda.to/forum/d…55/Busybox+pro+v11.apk
версия: 10.9.2 Pro ® BusyBox (Пост #28769878)
версия: 10.9 Pro ® BusyBox (Пост #28741428)
версия: 10.8 Pro ® BusyBox (Пост #28710333)
версия: 1.22.0 ® BusyBox (Пост #28479701)
версия: 10.7 Pro ® BusyBox (Пост #28465726)
версия: 1.21.1 ® BusyBox (Пост #24836443)
версия: 10.5 Pro https://4pda.to/forum/dl/post/3841232/BusyBox+Pro_10.5.apk
версия: 10.4 Pro https://4pda.to/forum/dl/post/3582432/BusyBox+Pro+v10.4.apk
версия: 10.3 Pro ® BusyBox (Пост #25386292)
версия: 10.2 Pro ® BusyBox (Пост #25326964)
версия: 10.1 Pro https://4pda.to/forum/dl/post/3474210/BusyBox_Pro_stericson.busybox.donate_159.apk
версия: 10.0 Pro https://4pda.to/forum/dl/post/3472655/BusyBox+Pro+v10.0.apk
версия: 9.9 Pro ® BusyBox (Пост #24294417)
версия: 9.8 Pro ® BusyBox (Пост #23971701)
версия: 9.7.7 Pro ® BusyBox (Пост #23945033)
версия: 9.7.6 Pro ® BusyBox (Пост #23715416)
версия: 9.7.5 Pro ® BusyBox (Пост #23695629)
версия: 9.7.3 Pro ® BusyBox (Пост #22360939)
версия: 9.7.2 Pro https://4pda.to/forum/dl/post/2629837/BusyBox+Pro+v9.7.2.apk
версия: 9.7.1 Pro https://4pda.to/forum/dl/post/2490057/BusyBox+Pro+v9.7.1.apk
версия: 9.6.7 Pro https://4pda.to/forum/dl/post/2351037/BusyBox+Pro+v9.6.7.apk
версия: 9.6.5 Pro https://4pda.to/forum/dl/post/2147240/BusyBox_Pro_v9.6.5.apk
версия: 9.6.4 Pro https://4pda.to/forum/dl/post/2065090/BusyBox_Pro_v9.6.4.apk
версия: 9.6.3 Pro https://4pda.to/forum/dl/post/2041776/BusyBox_Pro_v9.6.3.apk
версия: 9.6.2 Pro https://4pda.to/forum/dl/post/2037519/BusyBox_Pro_v9.6.2.apk
версия: 9.6.1 Pro https://4pda.to/forum/dl/post/2035324/BusyBox+Pro+9.6.1.apk
версия: 9.6 Pro https://4pda.to/forum/dl/post/2033590/BusyBox+Pro+v9.6.apk
версия: 9.5 Pro BusyBox_Pro_v9.5.apk
версия: 9.4 Pro https://4pda.to/forum/dl/post/1955022/BusyBox%20Pro%209.4.apk
версия: 9.2 Pro https://4pda.to/forum/dl/post/1911003/BusyBox%20Pro%209.2.apk
версия: 9.0 Pro https://4pda.to/forum/dl/post/1898118/BusyBox%20Pro_v9.0.apk
версия: 8.9 Pro https://4pda.to/forum/dl/post/1841054/BusyBox_Pro_v8.9.apk
версия: 8.6 Pro BusyBox_Pro_8.6.apk
версия: 8.3 Pro https://4pda.to/forum/dl/post/1758345/BusyBox_Pro_v8.3.apk
версия: 8.0 Pro BusyBox_Pro_8.0.apk
версия: 7.9.1 Pro https://4pda.to/forum/dl/post/1654629/BusyBox_Pro_7.9.1.apk
версия: 7.9 https://4pda.to/forum/dl/post/1649820/bbp79.apk
версия: 7.8.3 https://4pda.to/forum/dl/post/1568613/bb783.apk
версия: 7.8.2 BusyBox_Pro_stericson.busybox.donate_7.8.2_.apk
версия: 7.8 https://4pda.to/forum/dl/post/1530371/B.B.v7.8.apk
версия: 7.7 https://4pda.to/forum/dl/post/1504063/BusyBox_Pro_7.7.apk
версия: 7.6.1 https://4pda.to/forum/dl/post/1494941/B.B.v7.6.1.apk
версия: 7.6 Pro https://4pda.to/forum/dl/post/1489204/BusyBox_Pro_v7.6.apk
версия: 6.3 PRO RUS от Avangard_6 https://4pda.to/forum/dl/post/1326595/busybox.donate_96_6.3_RUS__Avangard_6_.apk
версия: 7.5.5 Pro https://4pda.to/forum/dl/post/1487003/BusyBox_Pro_7.5.5.apk
версия: 7.5.1 Pro https://4pda.to/forum/dl/post/1475891/BusyBox_Pro__v7.5.1_.apk
версия: 7.2 Pro https://4pda.to/forum/dl/post/1414037/stericson.busybox.donate_104_7.2.apk
версия: 7.0 Pro https://4pda.to/forum/dl/post/1386340/stericson.busybox.donate.102.apk
Версия 6.7: https://4pda.to/forum/dl/post/1362978/BusyBox_Pro_6.7.apk
Версия 6.6: https://4pda.to/forum/dl/post/1337185
версия: 6.3 PRO https://4pda.to/forum/dl/post/1323561/stericson.busybox.donate_96_6.3.apk
версия: 6.1 stericson.busybox_1.apk ( 5.32 МБ )
версия: 4.5 stericson.busybox_1.apk ( 4.47 МБ )
версия: 4.3 stericson.busybox_1.apk ( 4.47 МБ )
Сообщение отредактировал iMiKED — 07.05.21, 04:54
Хоть бы коротенько написал бы что такое busy box ?! Пошел гуглить как и 90% участников форума.
З.Ы. может кому пригодится:
BusyBox — набор UNIX-утилит командной строки, используется в качестве основного интерфейса во встраиваемых операционных системах. Преимуществами этого приложения являются малый размер и низкие требования к аппаратуре. Оно представляет собой единый файл (это позволяет сэкономить дисковое пространство). Разработка BusyBox была начата в 1996 году Брюсом Перенсом.
BusyBox создавался с целью оптимизации размера и с учётом ограниченных ресурсов. В то же время система является достаточно гибкой и модульной (в момент компиляции можно включить/исключить все необходимые компоненты). BusyBox представляет собой почти полную POSIX среду для встраиваемых и других систем с небольшим количеством доступного места. В настоящее время проект медленно движется к полной реализации Single Unix Specification V3[1], которая пока не достигнута. Также проект заинтересован в прохождении теста Linux Test Project.[2]
У меня хоть и аппарат на android, но не надо думать что каждый позователь дройда продвинутый линуксоид.
Сообщение отредактировал X_plode — 12.09.10, 19:24
Busybox по сути является набором консольных утилит Linux систем. Необходим, например, для работы app2sd или программ для разгона или чего-нибудь подобного, что требует подключения сторонних модулей ядра. В большинстве кастомных прошивок он уже встроен.
Сообщение отредактировал Kollapsik — 31.03.13, 17:47
Источник
Copying a folder from internal flash (/mnt/sdcard) does not work.
Thanks for the hint, I will add that.
Copying files from the lan (SMB) does not work.
Currently this isn’t supported in plugins, but I will try to add it to the next version if possible.
For anyone who wants to do this too, here is a class which you can use to write to the SD-Card. Feel free to use it in your own programs.
Code: Select all
package com.ghisler.android.TotalCommander;
import java.io.OutputStream;
import android.annotation.SuppressLint;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.provider.MediaStore;
public class MediaFileFunctions {
@SuppressLint({ "NewApi", "NewApi" })
private static Uri getFileUri(Context context,String fullname) {
// Note: check outside this class whether the OS version is >= 11
Uri uri=null;
Cursor cursor=null;
ContentResolver contentResolver=null;
try{
contentResolver=context.getContentResolver();
if (contentResolver==null)
return null;
uri=MediaStore.Files.getContentUri("external");
String[] projection=new String[2];
projection[0]="_id";
projection[1]="_data";
String selection="_data = ? "; // this avoids SQL injection
String[] selectionParams=new String[1];
selectionParams[0]=fullname;
String sortOrder="_id";
cursor=contentResolver.query(uri, projection, selection, selectionParams, sortOrder);
if (cursor!=null) {
try {
if (cursor.getCount()>0) { // file present!
cursor.moveToFirst();
int dataColumn=cursor.getColumnIndex("_data");
String s=cursor.getString(dataColumn);
if (!s.equals(fullname))
return null;
int idColumn=cursor.getColumnIndex("_id");
long id=cursor.getLong(idColumn);
uri=MediaStore.Files.getContentUri("external",id);
} else { // file isn't in the media database!
ContentValues contentValues=new ContentValues();
contentValues.put("_data",fullname);
uri=MediaStore.Files.getContentUri("external");
uri=contentResolver.insert(uri,contentValues);
}
} catch (Throwable e) {
uri=null;
}
cursor.close();
}
} catch (Throwable e) {
uri=null;
}
return uri;
}
public static OutputStream getOutputStreamViaContentProvider(Context context,String fullname) {
Uri uri=getFileUri(context,fullname);
if (uri==null)
return null;
try {
ContentResolver resolver=context.getContentResolver();
return resolver.openOutputStream(uri);
} catch (Throwable e) {
return null;
}
}
public static boolean deleteViaContentProvider(Context context,String fullname) {
Uri uri=getFileUri(context,fullname);
if (uri==null)
return false;
try {
ContentResolver resolver=context.getContentResolver();
// change type to image, otherwise nothing will be deleted
ContentValues contentValues=new ContentValues();
int media_type=1;
contentValues.put("media_type", media_type);
resolver.update(uri,contentValues,null,null);
return resolver.delete(uri,null,null)>0;
} catch (Throwable e) {
return false;
}
}
public static boolean mkDirViaContentProvider(Context context,String fullname) {
String fileName;
Uri uri;
ContentResolver resolver;
try {
resolver=context.getContentResolver();
fileName = strcatslash(fullname)+"ghisler_temp.jpg";
ContentValues contentValues=new ContentValues();
contentValues.put("_data", fileName);
uri = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,contentValues);
} catch (Throwable e) {
return false;
}
if (uri!=null) {
try {
resolver.delete(uri,null,null);
} catch (Throwable e) {
}
return true;
} else
return false;
}
public static String strcatslash(String dir) {
if (dir.length()>0 && !dir.endsWith("/"))
return dir+"/";
else
return dir;
}
}
To create a file on the card, just call:
Code: Select all
boolean ok=true;
OutputStream g = null;
try {
g = new FileOutputStream(fulltrg);
} catch (Exception e1) {
ok = false;
}
if (!ok && getOsVersion()>=11 && fulltrg.startsWith("/mnt")) {
g=MediaFileFunctions.getOutputStreamViaContentProvider(this,fulltrg);
It’s very important to check the OS version first, otherwise the class will crash your app on the first call! getOsVersion is defined like this:
Code: Select all
public static int getOsVersion() {
try {
java.lang.reflect.Field osField = android.os.Build.VERSION.class.getDeclaredField("SDK_INT");
osField.setAccessible(true);
int myBuild = osField.getInt(android.os.Build.VERSION.class);
return myBuild;
} catch (Exception e) {
return 3;
}
}
The reason why this works, and the normal File() object doesn’t, is the following: We call to the multimedia database for images, music etc. This is part of a different process, which is part of the operating system. Since only operating system processes are allowed to write to the card, this method works. The File() object is part of our own program, therefore it’s not allowed to write.
Ошибка при сохранении
Автор |
Сообщение |
|
---|---|---|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|