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을 만드는 것 말고는...방법이 없을까요?