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

SHV-E300S(4.4.2) 와 SHV-E250S(4.3) 외장메모리와 UI

0 추천
menifest

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

code..
String oldFolderPath=Environment.getExternalStorageDirectory()+"/oldGoods";
String newFolderPath = Environment.getExternalStorageDirectory()+"/newGoods";

File oldFolder= new File(oldFolderPath); 
File newFolder;

....
if(oldFolder.exists()){
oldFolder.mkdirs();
}

   makeDiretoryManager(oldFolder)
...

private String getRealPathURI(URI contentURI)
{
Cursor cursor = getContentResolver().query(contentURI, null, null, null,null);
corsor.moveToFirst(); 
int uriCursorwitch = cursor.getColumnIndex(MediaStore.MediaColumns.DATA);

        return cursor.getString(uriCursorwitch ); 

}
....
//경로 안에 있는 폴더와 파일을 읽고 Adapter에게 넘겨준다.
public void makeDiretoryManager(File file){
try{
   newFolder = file;
 ArrayList <FileStyle> mFileSytleList= new ArrayList<FileStyle>();

File[] folderFiles = file.listFiles();
File[] files;


if(folderFiles.length>0 && file.getPath().toString.equals(oldFileFolder.getAbsolutePath())){
  files = new File [folderFiles.length];

 for(int i=0; i<folderFiles.length; i++){
    files[i] = folderFiles[i];
}
....

 mFileSytleList.add(new FileStyle(mFile.isDirectory(), mFile));
....

 ListView.setAdapter(mFileSytleList);
}

 }catch{
}


[Adapter]

....

public String getImageInfo (String img String loc, String ID){

...
String[] imgContext = { MediaStore.Audio.Media._ID, MediaStore.Audio.Media_DATA
  ...  };
Cursor imageCursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, imageCursor, "_ID="+ID +"", null ,null);

  imageDataPath = imageCursor.getString(imgData);

 return imageDataPath;
    }
}






안녕하세요 왕초보입니다.

 

이번에 액션을 받으면 외부 메모리에 폴더와 파일을 생성하는 소스를 만들고 있는데요..

4.1 버젼에서는 잘 되는데 4.4.2 와 4.3 버젼에서는 안됩니다.

그래서 검색하다보니 외장메모리 관련 권한 문제가 있다기에 adb shell에서 권한으로 보니까

실제 파일이 생성 되었더군요...ㅠㅠ 파일브라우져 UI에서는 보이지 않구요... 

 

루팅 후 4.4.2는 system/etc/permission 에서 플랫폼.xml 에서 media_rw 추가 했으나 똑같습니다.

4.3은... 이미 sdcart/-rw, media_rw 라 해 볼 수도 없고요...

 

루팅 된 4.1 , 4.3, 4.4.2   3개 버젼에서 외부메모리 파일 관련 권한을 획득 할 수 없을까요?

 

그리고 4.4.2인 E300S 는 xml에서 주석 처리한 버튼들이 다 나와요..;;

파일 삭제 하고 재설치 하고 재시작 해도 이전 레이아웃이 나옵니다..;;

주석처리 부분을 지우면 안되는데.. 별도 layout을 만드는 것 말고는...방법이 없을까요?

 

 

아자잣 (160 포인트) 님이 2014년 6월 12일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...