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

외부저장소 텍스트파일 저장 질문합니다.

+1 추천
지금 장비에서 블루투스로 데이터를 따서 텍스트로 데이터 저장하는 프로그램을 작성 중 입니다.

개발도 중 외부 저장소 권한도 매니패스트에 작성하였고

저장하는 부분의 소스를 보면

try
        {
            String path = Environment.getExternalStorageDirectory()+"/serial";
            File file = new File(path);
            if( !file.exists() ) // 원하는 경로에 폴더가 있는지 확인
                file.mkdirs();

            file = new File(file, "data.txt");
            FileOutputStream fOut = new FileOutputStream(file, true);

            OutputStreamWriter osw = new OutputStreamWriter(fOut);

//---write the string to the file---
            osw.write(str);
            osw.flush();
            osw.close();
            //cont.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+path)));
            //cont.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://"+ //path+ "/EEGdata"+".txt")));

        }
        catch (Exception ioe)
        {
            ioe.printStackTrace();
        }

이런식으로 작성되어있고 데이터가 시리얼로 들어오면 어펜드 되는 형식입니다.

 

근데 문제는 저장은 되는데 휴대폰에서 만보이고 폰을 재부팅하기전까지 컴퓨터로 파일이 확인이 안된다는 것입니다.

 

뭔 짓이든 다해봤고 그중 제일 희망이있는건 미디어 스캔 문제인듯한데 보니까 안드로이드는 그림 음악 파일 외부저장소에 저장시 미디어스캔을 해야한느거같더군요...

 

그래서 미디어스캔부분도 한번 작성해봤는데 이도 소용이 없었습니다.

 

물론 상업목적인 아닌 프로그램이라 굳이 컴퓨터로 데이터를 안뽑아도되서 컴퓨터로 바로 확인 가능하지 않아도 되나

그래도 꼭 집고 넘어가고싶네요

 

떠돌아다니는 기트허브 소스는 대부분 써본거같네요...

 

그리고 이유는 모르겠지만 폰 초기화 이후에는 몇번은 파일이 재부팅 없이바로 컴퓨터로 텍스트 확인이 가능 합니다...

 

그 이후는 재부팅해야 보이고요..  이 또한 미디어 스캔 문제인 건지...
핵만중1 (510 포인트) 님이 2017년 1월 23일 질문

1개의 답변

0 추천
미디어 스캔 문제가 맞습니다.

어떤 시도를 했는지 올리면 좀 더 정확한 답변이 달릴겁니다.
익명사용자 님이 2017년 1월 23일 답변
파일생성시 생성 하자마자 위에 주석과 같이

//cont.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+path)));
             //cont.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://"+ //path+ "/data"+".txt")));

만들어진 디렉토리 랑 텍스트 파일 전부 미디어 스캔 실행하였습니다

어팬드하고 다시 읽다보니 이런식으로 될 수 밖에없는듯해요...

전체 어펜드하면 속도가 느려지니.... 데이터 처리를 많이 해야하거든여;;;

그밖에 이와 비슷한 외부저장소 저장가능하게만든 기트 허브 소스 대부분 적용시켜본듯하네요;;;

안드로이드 공부는 학교에서 풍문으로 해본게 전부라....

아직 확인 안해본건 전체 어미디어 스캔부분은 안해봤습니다 휴대폰 뻣을까봐...
이상한 방법을 사용했군요.
MediaScannerConnection을 사용하세요.
https://developer.android.com/reference/android/media/MediaScannerConnection.html
답변 감사합니다 되긴되는데 사용법을 좀더 익히고 적용해야겠네요 ㅋㅋ 감사합니다
...