2016-11-07 5 views
0

내 질문은 다소 간단해야하지만 인터넷에서 많이 검색하고 답을 찾을 수 없습니다.NDK API가있는 Android에서 이동식 저장소 액세스

내가 코드를 아래

String ExternalSdcardPath = System.getenv("SECONDARY_STORAGE") + "/Sample/"; 

와 보조 이동식 저장 (SDCARD)의 경로를 얻을 수 있고 나는이/저장/external_SD/샘플/

같은 경로를 얻을 수 내가 만들려고 ((ExternalSdcardPath, fopen의 "A +");) NDK API를 사용하여 파일을

하지만 난 만들고하면 fopen으로 파일을 읽을 수 없습니다 ..

당신이 나에게 어떻게 C로하시기 바랍니다 수 있습니다 이동식 경로 (secondary_storage)에서 fopen api로 파일 읽기 및 읽기?

답변

2

내가 그 환경 변수는 존재 의미가 무엇인가에 혼자 점을하도록하려면에 대한 요구 사항이없는 코드

아래로 차 이동식 저장 (SDCARD)의 경로를 얻을 수 있습니다.

나는 4.4 당신은 안드로이드에 이동식 저장 장치에 임의의 위치에 직접 파일 시스템 액세스 권한이없는 생성하고 fopen을

와 파일을 읽을 수 없습니다.

이동식 경로 (secondary_storage)에서 fopen api 파일을 만들고 읽는 방법을 알려주십시오.

이동식 저장 장치에 직접 파일 시스템 액세스를위한 유일한 장소 getExternalFilesDirs(), getExternalCacheDirs()getExternalMediaDirs()에 의해 반환되는 위치에있다. 그것들은 모두 Context에있는 방법입니다 (예 : 활동이나 서비스). 반환 값이 2+ 이상이면 두 번째 이후의 값은 이동식 저장소에 있습니다. Java 코드는 NDK 코드에 대한 경로를 제공 할 수 있습니다.

+0

답변 해 주셔서 감사합니다. 나는 당신이 말한 것을 테스트했고 이동식 경로 (File [] files = getExternalFilesDirs (""); 그리고 string path = files [1] .getAbsolutePath(), sdcard/Android/data/my 패키지 폴더) 저장 장치 폴더를 내 NDK 코드와 함께 저장하십시오. 다른 경로 인 sdcard/test_folder (패키지 폴더가 아님)에 액세스하고 쓰기 및 읽기 권한을 부여해야합니까 ?? –

+0

@ Ji.Hoon.Kim : 답변에서 썼 듯이 Android 4.4 이상에서는 이동식 저장소의 임의 위치 (예 : sdcard/test_folder가 무엇이든지간에)에 파일 시스템을 직접 액세스 할 수 없습니다. – CommonsWare

+0

나는 SAF (DocumentFile API, Android 5.0.1+, Lollipop)를 사용하여 이동식 저장소의 임의의 위치에 파일 시스템을 직접 액세스 할 수 있습니다. Android 5.0.1 이상에서 SAF Google UI없이 SAF를 사용할 수 있습니까? –