Как решить проблему отказа в разрешении в коде NDK? - PullRequest
0 голосов
/ 29 мая 2019

Я хочу прочитать bmp-файл в коде ndk, но он всегда не удался. Код ошибки показал, что разрешение отклонено.как решить эту проблему?

IDE - это Android Studio 3.1.2, но я думаю, что это не имеет ничего общего с IDE.Устройство hikey960 с Android 9 API28.Я упомянул некоторые проблемы similay и добавил пользовательское разрешение в Manifest.xml и указал абсолютный путь, но он все еще не работает!Но если я соберу его как файл executalbe и нажму / data / и дам полное разрешение, он будет работать нормально!

вот код ndk:

FILE *fpbmp = fopen (imagefile, "r+");

if (fpbmp == NULL) {
    LOGD ("open file failed!");
    LOGD("code %s \n", strerror(errno));

}

и AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.wangzh.normaltest">
    <uses-permission 
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission 
android:name="android.permission.READ_EXTERNAL_STORAGE" />

....

LogCat показывает, что код ошибки означает отказ в разрешении:

/sdcard/DCIM/1_1.bmp 
open file failed!
code Permission denied 

Может кто-нибудь дать какие-нибудь советы?Все будет оценено!

1 Ответ

0 голосов
/ 29 мая 2019

Я думаю, я нахожу причину! разрешение файла bmp в / sdcard / DCIM / is -rw-rw ----. Его нельзя изменить, даже если запустить команду chmod и установить разрешение в AndroidManifest.xml и во время выполнения.
Так что я mv файл в / data / и chmod 777 thefile. тогда он работает хорошо и не требует разрешения в AndroidManifest.xml или разрешения во время выполнения.

...