0
나는 쓰기를 시도하고

/다음 코드를 사용하여 SD 카드에서 읽어 매니페스트에서IOException이

 try { 
    File sdcard = Environment.getExternalStorageDirectory(); 
    File file = new File(sdcard,INITIAL_FILE_NAME); 

     if (!file.exists()) { 
      file.createNewFile(); 
     } 
    } 
    catch (IOException e) { 
     Log.e("TAG",e.getMessage()); 
    } 

나는 다음과 같은 권한을주는거야 :

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

 open failed: EACCES (Permission denied) 

내 응용 프로그램 시스템 페이지를주는거야 : 읽으려고 할 때

는 그러나, 나는 다음과 같은 예외를 받고 있어요 (다른 필요한 작업의 경우)

 android:sharedUserId = "android.uid.system" 

권한을 제거하면 sdcard에 액세스 할 수 있습니다. 어떤 이유로 시스템 권한이 sdcard에서 읽기/쓰기와 충돌합니다.

누군가가이 문제의 원인을 말해 줄 수 있습니까? 두 가지 방법 모두를 관리 할 수있는 방법이 있습니까?

+0

어떤 권한을 설정하셨습니까? –

+0

@PhilippJahoda 죄송합니다. 내 질문에 – user1851212

+0

READ_EXTERNAL_STORAGE 권한을 추가했습니다. –

답변

0

마운트 해제를 요청한 후 SD 카드의 열린 폴더를 계속 보유하고있는 프로세스는 마운트 해제 할 수 있도록 종료됩니다.

시스템 프로세스가 SD 카드에 액세스하여 액세스 할 수있는 권한이 없도록 이러한 종류의 문제 (일반적인 보안 청결 상태)를 피하기를 원하지 않습니다.

SD 카드에 액세스하려면 시스템 공유 사용자 ID를 사용하지 않아야합니다.

+0

답변 해 주셔서 감사합니다. 백그라운드 서비스에서 SD 카드에 액세스하면 작동합니까? 아니면 같은 문제에 묶여 있습니까? – user1851212

+0

@ user1851212 당신의 문제는 내가 알고있는 한 그 이후에도 계속 될 것이지만, 당신은 당신이 필요로하는 것이 있다면 그것을 대답으로 표시 할 수 있습니다. – CodeWarrior

+0

가 작동하지 않았습니다. 그러나 거기에 해결책이있어, 나는 좋은 접근 방법인지 잘 모르겠지만 다음과 같은 일을하고있다 : 그 안에 서비스 만있는 다른 애플리케이션을 생성한다. 나는 거기 sdcard 읽기/쓰기 프로세스를 않습니다. 내 응용 프로그램에서 그 서비스를 호출 할 수 있습니다. 어떻게 생각해? (마음에 드는 응용 프로그램은 상업적이지 않으므로 해당 관점에서 유연합니다.) – user1851212