마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Context.MODE_WORLD_WRITEABLE 사용건에 대한...

0 추천

 

책보고 공부하는 만학도입니다....

정석대로 해도  Context.MODE_WORLD_WRITEABLE  <- 이모드를 적용하면

해당부분이 밑줄이 그어지면서

실행할때 어플이 중지됩니다...

private 모드도 마찬가지입니다...

 

그냥 내부에 private 로 저장시는 잘 저장 되는데요...(private 모드에서만)

외부 sd 로 저장시  private 는 표시가 정상적으로 나오나  프로그램 중지되고

.MODE_WORLD_WRITEABLE  는 밑줄 그어진 상태에서  실행하면

프로그램 중지됩니다..

매니페스트에

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

이것두 등록된 상태입니다...

책보고 하는 초보자라  그대로 따라해도 안되는데요...

선배님들 도와주십시요..

 

파일을 만들어 다른프로그램에서도 사용하고 싶고 공유하고 싶어

"*.text" 파일니나 바이트 파일 생성하려 해는데...

여기서 3일동안 해메고 있습니다...

 

가르침좀 부탁드립니다...

 

final String path = Environment.getExternalStorageDirectory()
    .getAbsolutePath();
  btn6.setOnClickListener(new View.OnClickListener() {
   
    @Override
   public void onClick(View v) {
    try {
     final File folder = new File(path + "/" + edit1.getText());
     folder.mkdir();
     
     FileOutputStream out = openFileOutput(path+"/"+edit1.getText()+"/aaa.txt",
       Context.MODE_WORLD_WRITEABLE);

//여기에서는 안보지만 Context.MODE_WORLD_WRITEABLE 이줄에 및줄일 그어집니다
     String str = edit1.getText().toString();

     out.write(str.getBytes());
     out.close();
     Toast.makeText(MainActivity.this, "파일이 생성되었습니다!",
       Toast.LENGTH_SHORT).show();
    } catch (FileNotFoundException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  });

 

 

 

다마임 (120 포인트) 님이 2014년 10월 19일 질문
다마임님이 2014년 10월 19일 수정

2개의 답변

0 추천

http://developer.android.com/reference/android/content/Context.html

에 보시면 나오지만, 

int MODE_WORLD_WRITEABLE This constant was deprecated in API level 17. Creating world-writable files is very dangerous, and likely to cause security holes in applications. It is strongly discouraged; instead, applications should use more formal mechanism for interactions such as ContentProviderBroadcastReceiver, and Service. There are no guarantees that this access mode will remain on a file, such as when it goes through a backup and restore. File creation mode: allow all other applications to have write access to the created file.

deprecated된 값입니다. 해당 값을 사용하시지 않는 게 좋습니다.

굳이 사용하고 싶으시다면 컴파일 및 적용 API 레벨을 17보다 작은 걸로 해주셔야 겠습니다.

cc1232 (35,280 포인트) 님이 2014년 10월 20일 답변
댓글 감사합니다..
  머리좀 식히려고 하다 이제야 봤습니다....
관련글은 참고 하여 공부하겠습니다.....
0 추천

중지되는 이유는 아마

path+"/"+edit1.getText()+"/aaa.txt" 위치의 파일이 존재하지 않아서 nullpointer에러가 난거같네요.

File.createNewFile로 만드신후 write하시면 에러는 안날듯하네요.

q1212 (26,020 포인트) 님이 2014년 10월 20일 답변
...