2015-06-02 11 views

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

+0

Questo non funzionerebbe in quanto è necessario passare attraverso l'API del documento e il 'ContentResolver' per scrivere sul file. – Anthony