다음을 통해 공유


ContentProvider.OpenFile 메서드

정의

오버로드

OpenFile(Uri, String)

파일 Blob을 여는 요청을 처리하도록 재정의합니다.

OpenFile(Uri, String, CancellationSignal)

파일 Blob을 여는 요청을 처리하도록 재정의합니다.

OpenFile(Uri, String)

파일 Blob을 여는 요청을 처리하도록 재정의합니다.

[Android.Runtime.Register("openFile", "(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;", "GetOpenFile_Landroid_net_Uri_Ljava_lang_String_Handler")]
public virtual Android.OS.ParcelFileDescriptor? OpenFile (Android.Net.Uri uri, string mode);
[<Android.Runtime.Register("openFile", "(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;", "GetOpenFile_Landroid_net_Uri_Ljava_lang_String_Handler")>]
abstract member OpenFile : Android.Net.Uri * string -> Android.OS.ParcelFileDescriptor
override this.OpenFile : Android.Net.Uri * string -> Android.OS.ParcelFileDescriptor

매개 변수

uri
Uri

파일을 열 URI입니다.

mode
String

파일 모드의 문자열 표현입니다. "r", "w", "wt", "wa", "rw" 또는 "rwt"일 수 있습니다. 이러한 구현의 정확한 구현은 각 공급자 구현에 따라 다를 수 있습니다. 예를 들어 "w"는 잘리거나 잘리지 않을 수 있습니다.

반환

파일에 액세스하는 데 사용할 수 있는 새 ParcelFileDescriptor를 반환합니다.

특성

예외

지정된 URI와 연결된 파일이 없거나 모드가 잘못된 경우 FileNotFoundException을 throw합니다.

호출자에게 파일에 액세스할 수 있는 권한이 없는 경우 SecurityException을 throw합니다.

설명

파일 Blob을 여는 요청을 처리하도록 재정의합니다. 기본 구현은 항상 throw됩니다.FileNotFoundException 프로세스 및 스레드에 설명된 대로 여러 스레드에서 이 메서드를 호출할 수 있습니다.

이 메서드는 호출자에게 직접 반환되는 ParcelFileDescriptor를 반환합니다. 이렇게 하면 콘텐츠를 복사하지 않고도 큰 데이터(예: 이미지 및 문서)를 반환할 수 있습니다.

반환된 ParcelFileDescriptor는 호출자가 소유하므로 완료되면 닫아야 합니다. 즉, 이 메서드의 구현은 각 호출에 대해 새 ParcelFileDescriptor를 만들어야 합니다.

배타적인 "r" 또는 "w" 모드로 열면 반환된 ParcelFileDescriptor는 파이프 또는 소켓 쌍이 되어 데이터 스트리밍을 사용하도록 설정할 수 있습니다. "rw" 또는 "rwt" 모드로 여는 것은 검색을 지원하는 디스크의 파일을 의미합니다.

반환된 ParcelFileDescriptor가 닫혔거나 원격 프로세스가 충돌하거나 다른 오류가 발생한 경우 검색해야 하는 경우 사용ParcelFileDescriptor#open(File, int, android.os.Handler, android.os.ParcelFileDescriptor.OnCloseListener)ParcelFileDescriptor#createReliablePipe()하거나 ParcelFileDescriptor#createReliableSocketPair()사용할 수 있습니다.

네트워크 공유 또는 클라우드 스토리지 서비스의 파일과 같이 디스크의 실제 파일에서 지원되지 않는 큰 파일을 반환해야 하는 경우 필요에 따라 콘텐츠를 스트리밍할 수 있는 파일을 사용하는 StorageManager#openProxyFileDescriptor(int, android.os.ProxyFileDescriptorCallback, android.os.Handler) 것이 좋습니다.

<p class="note">의도에서 사용하기 위해 동일한 URI를 사용하여 여기에 반환된 데이터에 적절한 MIME 형식을 반환하도록 구현 #getType 하려고 합니다. 이렇게 하면 의도 확인에서 데이터 MIME 형식을 자동으로 결정하고 작업의 일부로 적절한 일치 대상을 선택할 수 있습니다.

<p class="note">다른 애플리케이션과의 상호 운용성을 향상하려면 열 수 있는 모든 URI에 대해 지정된 열 android.provider.OpenableColumns이상을 포함하는 쿼리도 지원하는 것이 좋습니다. 입력과 같이 android.provider.MediaStore.MediaColumns#DATE_ADDED android.provider.MediaStore.MediaColumns제공할 추가 메타 데이터가 있는 경우 다른 공통 열을 지원할 수도 있습니다.</p>

에 대한 android.content.ContentProvider.openFile(android.net.Uri, java.lang.String)Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

추가 정보

  • <xref:Android.Content.ContentProvider.OpenAssetFile(Android.Net.Uri%2c+System.String)>
  • <xref:Android.Content.ContentProvider.OpenFileHelper(Android.Net.Uri%2c+System.String)>
  • GetType(Uri)
  • ParseMode(String)

적용 대상

OpenFile(Uri, String, CancellationSignal)

파일 Blob을 여는 요청을 처리하도록 재정의합니다.

[Android.Runtime.Register("openFile", "(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor;", "GetOpenFile_Landroid_net_Uri_Ljava_lang_String_Landroid_os_CancellationSignal_Handler")]
public virtual Android.OS.ParcelFileDescriptor? OpenFile (Android.Net.Uri uri, string mode, Android.OS.CancellationSignal? signal);
[<Android.Runtime.Register("openFile", "(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor;", "GetOpenFile_Landroid_net_Uri_Ljava_lang_String_Landroid_os_CancellationSignal_Handler")>]
abstract member OpenFile : Android.Net.Uri * string * Android.OS.CancellationSignal -> Android.OS.ParcelFileDescriptor
override this.OpenFile : Android.Net.Uri * string * Android.OS.CancellationSignal -> Android.OS.ParcelFileDescriptor

매개 변수

uri
Uri

파일을 열 URI입니다.

mode
String

파일 모드의 문자열 표현입니다. "r", "w", "wt", "wa", "rw" 또는 "rwt"일 수 있습니다. 이러한 구현의 정확한 구현은 각 공급자 구현에 따라 다를 수 있습니다. 예를 들어 "w"는 잘리거나 잘리지 않을 수 있습니다.

signal
CancellationSignal

진행 중인 null 작업을 취소하거나 없는 경우 취소하는 신호입니다. 예를 들어 네트워크에서 파일을 다운로드하여 "rw" 모드 요청을 서비스하는 경우 주기적으로 호출 CancellationSignal#throwIfCanceled() 하여 클라이언트가 요청을 취소했는지 확인하고 다운로드를 중단해야 합니다.

반환

파일에 액세스하는 데 사용할 수 있는 새 ParcelFileDescriptor를 반환합니다.

특성

예외

지정된 URI와 연결된 파일이 없거나 모드가 잘못된 경우 FileNotFoundException을 throw합니다.

호출자에게 파일에 액세스할 수 있는 권한이 없는 경우 SecurityException을 throw합니다.

설명

파일 Blob을 여는 요청을 처리하도록 재정의합니다. 기본 구현은 항상 throw됩니다.FileNotFoundException 프로세스 및 스레드에 설명된 대로 여러 스레드에서 이 메서드를 호출할 수 있습니다.

이 메서드는 호출자에게 직접 반환되는 ParcelFileDescriptor를 반환합니다. 이렇게 하면 콘텐츠를 복사하지 않고도 큰 데이터(예: 이미지 및 문서)를 반환할 수 있습니다.

반환된 ParcelFileDescriptor는 호출자가 소유하므로 완료되면 닫아야 합니다. 즉, 이 메서드의 구현은 각 호출에 대해 새 ParcelFileDescriptor를 만들어야 합니다.

배타적인 "r" 또는 "w" 모드로 열면 반환된 ParcelFileDescriptor는 파이프 또는 소켓 쌍이 되어 데이터 스트리밍을 사용하도록 설정할 수 있습니다. "rw" 또는 "rwt" 모드로 여는 것은 검색을 지원하는 디스크의 파일을 의미합니다.

반환된 ParcelFileDescriptor가 닫혔거나 원격 프로세스가 충돌하거나 다른 오류가 발생한 경우 검색해야 하는 경우 사용ParcelFileDescriptor#open(File, int, android.os.Handler, android.os.ParcelFileDescriptor.OnCloseListener)ParcelFileDescriptor#createReliablePipe()하거나 ParcelFileDescriptor#createReliableSocketPair()사용할 수 있습니다.

<p class="note">의도에서 사용하기 위해 동일한 URI를 사용하여 여기에 반환된 데이터에 적절한 MIME 형식을 반환하도록 구현 #getType 하려고 합니다. 이렇게 하면 의도 확인에서 데이터 MIME 형식을 자동으로 결정하고 작업의 일부로 적절한 일치 대상을 선택할 수 있습니다.

<p class="note">다른 애플리케이션과의 상호 운용성을 향상하려면 열 수 있는 모든 URI에 대해 지정된 열 android.provider.OpenableColumns이상을 포함하는 쿼리도 지원하는 것이 좋습니다. 입력과 같이 android.provider.MediaStore.MediaColumns#DATE_ADDED android.provider.MediaStore.MediaColumns제공할 추가 메타 데이터가 있는 경우 다른 공통 열을 지원할 수도 있습니다.</p>

에 대한 android.content.ContentProvider.openFile(android.net.Uri, java.lang.String, android.os.CancellationSignal)Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

추가 정보

  • <xref:Android.Content.ContentProvider.OpenAssetFile(Android.Net.Uri%2c+System.String)>
  • <xref:Android.Content.ContentProvider.OpenFileHelper(Android.Net.Uri%2c+System.String)>
  • GetType(Uri)
  • ParseMode(String)

적용 대상