Come è possibile accedere ai file generati da un DocumentFile in Android KitKat/Lollipop nel codice JNI nativo, quindi posso usare fopen, fread, ecc. Chiedo in particolare che questo acceda ai file esterni SD-Card tramite l'NDK.Come accedere ai file Lollipop DocumentFile di Android tramite NDK?
13
A
risposta
7
È possibile utilizzare descrittori di file:
ParcelFileDescriptor filePfd;
DocumentFile file;
filePfd = getContentResolver().openFileDescriptor(file.getUri(), "w");
int fd = filePfd.getFd();
Questo int fd
può essere passato a JNI e utilizzati come al solito C++ descrittore di file:
FILE* file = NULL;
file = fdopen(fd, "r+b");
Ed è necessario il permesso di accedere a file o directory su scheda SD
012.
1
Avresti bisogno di ottenere l'URI dal file utilizzando DocumentFile.getURI()
e quindi convertire quell'URI in un percorso completo.
ci sono molteplici esempi di URI al percorso su StackOverflow, ecco 1 that I've used before that works pretty well
Questo non funzionerebbe in quanto è necessario passare attraverso l'API del documento e il 'ContentResolver' per scrivere sul file. – Anthony