2013-12-16 5 views
2

내 응용 프로그램에서 사용자가 휴대 전화의 갤러리에서 사진을 선택할 수있게하려고합니다. Intent.EXTRA_LOCAL_ONLY doesnt work

intentBrowseFiles.putExtra(Intent.EXTRA_LOCAL_ONLY, true); 

나는이 만 갤러리 의도를 발사 것이라고 생각하지만, 대신에 사용자는 자신의 드라이브의 선택, 보관에 남아 :

Intent intentBrowseFiles = new Intent(); 
    intentBrowseFiles.setType("image/*"); 
    intentBrowseFiles.setAction(Intent.ACTION_GET_CONTENT); 
    intentBrowseFiles.putExtra(Intent.EXTRA_LOCAL_ONLY, true); 
    startActivityForResult(Intent.createChooser(intentBrowseFiles,"Select Picture"), SHOW_GALLERY); 

놓음으로써 다음과 같이 내가 사용하는 코드입니다 기타 로컬 계정과 함께 온라인 계정 ...

다른 원격 리소스는 필요하지 않습니다. 여기에 누락 된 것이 있습니까?

답변

3

ACTION_GET_CONTENT과 같은 의도 동작을 사용하면 열려고하는 앱을 선택하라는 메시지가 표시됩니다. 사용자가 기본값을 설정하지 않은 경우 어떤 앱을 사용할 것인지 묻습니다. 대화 상자의 앱에는 해당 유형의 의도를 처리 할 수 ​​있다고 말한 앱이 표시됩니다.

특정 활동을 시작하기 위해 의도를 사용하려면 이름으로 호출해야합니다. 여기서 문제는 갤러리 앱이 다른 기기에서 다르게 이름을 지정하거나 모두 삭제할 수 있다는 것입니다.

사용자가 선택한 앱을 선택하면 일반적으로해야 할 일이 있습니다. 확실히 "Androidy"방식입니다.

어느 쪽이든 EXTRA_LOCAL_ONLY은 수신 응용 프로그램에 이 있어야 함을 나타내야합니다.은 현재 데이터 만 반환해야합니다. 그 조건을 시행하지 않습니다.

+1

또한 'Intent.EXTRA_LOCAL_ONLY'을 (를) 추가하면 선택 항목에서 Google 드라이브가 숨겨 지지만 ** Google 포토 ** (해당 사진은 SD 카드에 없음)가 표시됩니다. –