안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요..
이상하게 아래와 같이 구성해서 하면 문제가 발생합니다.
권한이 없다고 나타나는데 왜 이러는지 모르겠네요..
혹시 아시는 분 답변 부탁드립니다.
sdcard를 단말에 넣고 파일 하나를 읽으려 합니다.
Environment.getExternalStorageDirectory() 이 함수의 결과는 "/mnt/sdcard" 로 넘어옵니다.
코드는 아래와 같습니다.
BufferedReader bufferReader = null; FileInputStream fis; String strPath=null; try { File path = new File(Environment.getExternalStorageDirectory() + "/aaa.txt"); fis = new FileInputStream(path); bufferReader = new BufferedReader(new InputStreamReader(fis)); strPath = bufferReader.readLine(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
권한은
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
와 같이 줬습니다.
그런데 아래와 같은 에러가 발생하네요.
10-28 16:55:46.472: WARN/System.err(5786): java.io.FileNotFoundException: /mnt/sdcard/aaa.txt (Permission denied)
10-28 16:55:46.472: WARN/System.err(5786): at org.apache.harmony.luni.platform.OSFileSystem.openImpl(Native Method)
10-28 16:55:46.472: WARN/System.err(5786): at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:152)
10-28 16:55:46.472: WARN/System.err(5786): at java.io.FileInputStream.<init>(FileInputStream.java:82)
10-28 16:55:46.472: WARN/System.err(5786): at com.skt.RAgent.Agent.chkUrl(RAgent.java:552)
10-28 16:55:46.472: WARN/System.err(5786): at com.skt.RAgent.Agent.onCreate(RAgent.java:579)
10-28 16:55:46.472: WARN/System.err(5786): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-28 16:55:46.476: WARN/System.err(5786): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
10-28 16:55:46.476: WARN/System.err(5786): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
10-28 16:55:46.476: WARN/System.err(5786): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
10-28 16:55:46.476: WARN/System.err(5786): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
10-28 16:55:46.476: WARN/System.err(5786): at android.os.Handler.dispatchMessage(Handler.java:99)
10-28 16:55:46.476: WARN/System.err(5786): at android.os.Looper.loop(Looper.java:123)
10-28 16:55:46.476: WARN/System.err(5786): at android.app.ActivityThread.main(ActivityThread.java:4627)
10-28 16:55:46.476: WARN/System.err(5786): at java.lang.reflect.Method.invokeNative(Native Method)
10-28 16:55:46.476: WARN/System.err(5786): at java.lang.reflect.Method.invoke(Method.java:521)
10-28 16:55:46.476: WARN/System.err(5786): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
10-28 16:55:46.476: WARN/System.err(5786): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
10-28 16:55:46.476: WARN/System.err(5786): at dalvik.system.NativeStart.main(Native Method)
파일 네임에 / 빼보시지요?
아님 해당 경로에 파일이 없는게 아닌지?