Мне нужно открыть мои мои файлы в /data / data /{package-name} /files с помощью QuickOffice в Android

#android #quickoffice

#Android #quickoffice

Вопрос:

Мне нужен ваш hrlp.Прямо сейчас я поражен здесь. 1) На моем устройстве нет SD-карты. 2) В моем приложении у меня есть файлы MS во внутренней памяти, такие как ppt, xls и даже pdf 3) У меня есть quickoffice на моем устройстве. 4) Когда я запускаю намерение просмотра, используя соответствующий тип Mime, я получаю следующую ошибку:

ОШИБКА / Quickoffice (15141): исключение java.io.FileNotFoundException: /data/data/packagename/files/folder/something.pptx (В разрешении отказано) 01965 ОШИБКА / Quickoffice (15141): в org.apache.harmony.luni.platform.Ошибка OSFileSystem.openImpl (собственный метод) / Quickoffice (15141): в org.apache.harmony.luni.platform.OSFileSystem.open (OSFileSystem.java:152) ОШИБКА / Quickoffice (15141): в java.io.FileInputStream.(FileInputStream.java:82) ОШИБКА / Quickoffice (15141): в java.io.FileInputStream.(FileInputStream.java: 134) ОШИБКА / Quickoffice (15141): в android.content.ContentResolver.openInputStream (ContentResolver.java: 300) ОШИБКА / Quickoffice (15141): на com.qo.android.quickcommon.OfficeActivity.a(Неизвестный источник) ОШИБКА / Quickoffice (15141): на com.qo.android.quickcommon.OfficeActivity.a(Неизвестный источник) ОШИБКА / Quickoffice (15141): на com.qo.android.краткое слово.Ошибка Quickword.onCreate (неизвестный источник) / Quickoffice (15141): в android.app.Instrumentation.callActivityOnCreate(Instrumentation.java: 1052) 01965 ОШИБКА / Quickoffice (15141): в android.app.ActivityThread.performLaunchActivity(ActivityThread.java: 2627) ОШИБКА / Quickoffice (15141): в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java: 2679) 01965 ОШИБКА / Quickoffice (15141): в android.app.ActivityThread.access $ 2300 (ActivityThread.java: 125) 01965 ОШИБКА / Quickoffice (15141): в android.app.ActivityThread $H.handleMessage(ActivityThread.java: 2033) 01965 ОШИБКА / Quickoffice (15141): в android.os.Handler.DispatchMessage(Handler.java: 99) 01965 ОШИБКА / Quickoffice (15141): в android.os.Looper.loop(Looper.java: 123) 01965 ОШИБКА / Quickoffice(15141): в android.app.ActivityThread.main(ActivityThread.java: 4627) 01965 ОШИБКА / Quickoffice (15141): в java.lang.reflect.Метод.invokeNative (собственный метод) 01965 ОШИБКА / Quickoffice (15141): на java.lang.reflect.Method.invoke (Метод.java: 521) 01965 ОШИБКА / Quickoffice (15141): в com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: 858) 01965 ОШИБКА / Quickoffice(15141): в com.android.internal.os.ZygoteInit.main( ZygoteInit.java:616) 01965 ОШИБКА / Quickoffice(15141): в dalvik.system.NativeStart.main(собственный метод)

Есть ли какой-либо обходной путь / решение.Пожалуйста, предложите 🙂 Заранее спасибо

Ответ №1:

Доступ к файлу внутри вашего имени пакета может получить только ваше приложение. Если вы хотите получить доступ к этому файлу из своего приложения, запишите его в какое-либо общее местоположение, например, getExternalStorageDirectory().

Комментарии:

1. Спасибо, Манан…. Вот в чем проблема. Мне нужно, чтобы это были файлы, относящиеся к конкретному приложению (поскольку у меня нет SD-карты, а также мне нужно изолировать ее). Встроенной библиотеки для просмотра форматов ms нет. Я действительно ищу, сталкивался ли кто-нибудь с подобными проблемами в прошлом, чтобы пролить некоторый свет. Вопрос прост, но решения нет:(

2. На самом деле, я нашел обходной путь для этого. Когда я создавал файл, я создал как openFileOutput («filename»,world_readable). Затем он может быть открыт третьей стороной.

Ответ №2:

Вы должны использовать ContentProvider, чтобы предоставить доступ к файлам внутри вашего внутреннего хранилища.