Я пытаюсь напечатать или записать защищенный файл /data/data/com.package/file в android журналах - PullRequest
1 голос
/ 16 марта 2020

Я пытался

File f = new File("/data/data/mypackge/test");
            f.setReadable(true);

Log.d("TEST", MainActivity.getFileContents(f));
        } catch (Exception e) {
            e.printStackTrace();
            finish();

, но это выдает ошибку

java.io.FileNotFoundException: /data/data/mypackage/test: open failed: EACCES (Permission denied)
03-16 00:53:19.897  4231  4231 W System.err:    at libcore.io.IoBridge.open(IoBridge.java:452)
03-16 00:53:19.897  4231  4231 W System.err:    at java.io.FileInputStream.<init>(FileInputStream.java:76)
03-16 00:53:19.897  4231  4231 W System.err:    at com.mypackage.MainActivity.getFileContents(MainActivity.java:58)
03-16 00:53:19.897  4231  4231 W System.err:    at com.mypackage.MainActivity.onCreate(MainActivity.java:50)
03-16 00:53:19.897  4231  4231 W System.err:    at android.app.Activity.performCreate(Activity.java:6237)
03-16 00:53:19.897  4231  4231 W System.err:    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
03-16 00:53:19.897  4231  4231 W System.err:    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
03-16 00:53:19.897  4231  4231 W System.err:    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
03-16 00:53:19.897  4231  4231 W System.err:    at android.app.ActivityThread.-wrap11(ActivityThread.java)
03-16 00:53:19.897  4231  4231 W System.err:    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
03-16 00:53:19.897  4231  4231 W System.err:    at android.os.Handler.dispatchMessage(Handler.java:102)
03-16 00:53:19.897  4231  4231 W System.err:    at android.os.Looper.loop(Looper.java:148)
03-16 00:53:19.897  4231  4231 W System.err:    at android.app.ActivityThread.main(ActivityThread.java:5417)
03-16 00:53:19.897  4231  4231 W System.err:    at java.lang.reflect.Method.invoke(Native Method)
03-16 00:53:19.897  4231  4231 W System.err:    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
03-16 00:53:19.897  4231  4231 W System.err:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
03-16 00:53:19.897  4231  4231 W System.err: Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
03-16 00:53:19.897  4231  4231 W System.err:    at libcore.io.Posix.open(Native Method)
03-16 00:53:19.897  4231  4231 W System.err:    at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
03-16 00:53:19.897  4231  4231 W System.err:    at libcore.io.IoBridge.open(IoBridge.java:438)
03-16 00:53:19.897  4231  4231 W System.err:    ... 15 more

Я перепробовал большинство изменений в моем коде, но не могу получить, пожалуйста, у любого есть решение для ответа на эту тему Любой ответ android версии приветствуется от android 5.1 до 9. Моему приложению необходимо записать файл в директорию приложения / data / data / myapp / file в центральных журналах, пожалуйста, помогите любому узнать это.

1 Ответ

0 голосов
/ 16 марта 2020

Есть 2 вещи, которые вам нужно сделать, во-первых, проверить f.exists () if(!f.exists()) return;

Затем вам нужно использовать new File(getExternalFilesDir(null), "path-to-your-file");

Это должно безопасно создайте ссылку на файл.

Редактировать

Если вы хотите каталог данных, используйте getInternalFilesDir()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...