ContentProvider.OpenFile メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
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 をスローします。
呼び出し元にファイルへのアクセス許可がない場合は、SecurityException をスローします。
注釈
ファイル BLOB を開く要求を処理するには、これをオーバーライドします。 既定の実装では常にスローされます FileNotFoundException
。 このメソッドは、「プロセスとスレッド」の説明に従って、複数の スレッドから呼び出すことができます。
このメソッドは、呼び出し元に直接返される ParcelFileDescriptor を返します。 これにより、コンテンツをコピーすることなく、大きなデータ (画像やドキュメントなど) を返すことができます。
返される ParcelFileDescriptor は呼び出し元によって所有されるため、完了したら閉じる必要があります。 つまり、このメソッドの実装では、呼び出しごとに新しい ParcelFileDescriptor を作成する必要があります。
排他的な "r" モードまたは "w" モードで開いた場合、返される ParcelFileDescriptor はパイプまたはソケットのペアにして、データのストリーミングを有効にすることができます。 "rw" または "rwt" モードで開くということは、シークをサポートするディスク上のファイルを意味します。
返された ParcelFileDescriptor が閉じられたときに検出する必要がある場合、またはリモート プロセスがクラッシュした場合、または他のエラーが発生した場合は、次ParcelFileDescriptor#createReliablePipe()
ParcelFileDescriptor#createReliableSocketPair()
を使用ParcelFileDescriptor#open(File, int, android.os.Handler, android.os.ParcelFileDescriptor.OnCloseListener)
できます。
ネットワーク共有やクラウド ストレージ サービス上のファイルなど、ディスク上の実際のファイルでバックアップされていない大きなファイルを返す必要がある場合は、これを使用 StorageManager#openProxyFileDescriptor(int, android.os.ProxyFileDescriptorCallback, android.os.Handler)
してコンテンツをオンデマンドでストリーミングすることを検討してください。
<p class="note">Intents で使用する場合は、ここで返されるデータの適切な MIME の種類を同じ URI で返すように実装 #getType
する必要があります。 これにより、意図解決でデータ MIME の種類を自動的に決定し、操作の一環として適切な一致するターゲットを選択できるようになります。
<p class="note">他のアプリケーションとの相互運用性を向上するために、開くことができるすべての URI では、少なくとも指定された android.provider.OpenableColumns
列を含む URI に対するクエリもサポートすることをお勧めします。 追加のメタデータを提供する場合は、他の一般的な列をサポートすることもできます。<例:android.provider.MediaStore.MediaColumns#DATE_ADDED
android.provider.MediaStore.MediaColumns
/p>
の Java ドキュメントandroid.content.ContentProvider.openFile(android.net.Uri, java.lang.String)
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 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 をスローします。
呼び出し元にファイルへのアクセス許可がない場合は、SecurityException をスローします。
注釈
ファイル BLOB を開く要求を処理するには、これをオーバーライドします。 既定の実装では常にスローされます FileNotFoundException
。 このメソッドは、「プロセスとスレッド」の説明に従って、複数の スレッドから呼び出すことができます。
このメソッドは、呼び出し元に直接返される ParcelFileDescriptor を返します。 これにより、コンテンツをコピーすることなく、大きなデータ (画像やドキュメントなど) を返すことができます。
返される ParcelFileDescriptor は呼び出し元によって所有されるため、完了したら閉じる必要があります。 つまり、このメソッドの実装では、呼び出しごとに新しい ParcelFileDescriptor を作成する必要があります。
排他的な "r" モードまたは "w" モードで開いた場合、返される ParcelFileDescriptor はパイプまたはソケットのペアにして、データのストリーミングを有効にすることができます。 "rw" または "rwt" モードで開くということは、シークをサポートするディスク上のファイルを意味します。
返された ParcelFileDescriptor が閉じられたときに検出する必要がある場合、またはリモート プロセスがクラッシュした場合、または他のエラーが発生した場合は、次ParcelFileDescriptor#createReliablePipe()
ParcelFileDescriptor#createReliableSocketPair()
を使用ParcelFileDescriptor#open(File, int, android.os.Handler, android.os.ParcelFileDescriptor.OnCloseListener)
できます。
<p class="note">Intents で使用する場合は、ここで返されるデータの適切な MIME の種類を同じ URI で返すように実装 #getType
する必要があります。 これにより、意図解決でデータ MIME の種類を自動的に決定し、操作の一環として適切な一致するターゲットを選択できるようになります。
<p class="note">他のアプリケーションとの相互運用性を向上するために、開くことができるすべての URI では、少なくとも指定された android.provider.OpenableColumns
列を含む URI に対するクエリもサポートすることをお勧めします。 追加のメタデータを提供する場合は、他の一般的な列をサポートすることもできます。<例:android.provider.MediaStore.MediaColumns#DATE_ADDED
android.provider.MediaStore.MediaColumns
/p>
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 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)