これらはどちらも別のアプリで使用されています。 FacebookはFile Urisと、WhatsappはContent Urisと共有しています。私のアプリがビデオや写真を共有できるのであれば、どちらを使うべきですか?コンテンツ://とファイル://写真と動画を共有する場合のアンドロイドで
また、私のアプリがビデオと写真を受け入れる必要がある場合は、どのタイプのものを用意する必要がありますか?両方の場合、コンテンツURIをFile Uriに変換するのか、それとも逆の方法にするべきですか?
これらはどちらも別のアプリで使用されています。 FacebookはFile Urisと、WhatsappはContent Urisと共有しています。私のアプリがビデオや写真を共有できるのであれば、どちらを使うべきですか?コンテンツ://とファイル://写真と動画を共有する場合のアンドロイドで
また、私のアプリがビデオと写真を受け入れる必要がある場合は、どのタイプのものを用意する必要がありますか?両方の場合、コンテンツURIをFile Uriに変換するのか、それとも逆の方法にするべきですか?
私のアプリがビデオや画像を共有できる場合、どちらを使うべきですか?
は、Android 7.0以降では、あなたは、このようなFileProvider
からなど、content
Uri
を使用して共有するしか選択の余地を持っています。
Android 6.0以降では、コンテンツが内部ストレージにある場合は、サードパーティアプリで内部ストレージの一部にアクセスできないため、FileProvider
も使用する必要があります。コンテンツが外部ストレージにある場合は、file
またはcontent
のいずれかを使用できます。デバイスが古いほど、あらかじめインストールされているアプリはfile
のみをサポートする可能性が高くなります。
私のアプリがビデオと写真を受け入れるべきかどうか、どのタイプのものを準備すればよいですか?
理想的には両方。 ACTION_SEND
を意味する「受け入れる」場合は、両方をサポートする以外に選択肢はありません。 ACTION_VIEW
とIntent
のように、Intent
のデータファセットがUri
に使用されている場合は、<data>
要素を使用して、サポートしているスキームを宣伝してください。
私はContent URIをFile Uriに変換するのか、それとも逆の方法にするべきですか?
どちらもありません。元のソースからコンテンツを消費します。 ContentProvider
は、getType()
とopenInputStream()
などの両方のスキームをサポートしています。
getActivity()。getContentResolver()。私がfile:///storage/emulated/0/com.facebookで使用すると、getType(urinormal)がクラッシュします。 katana/fb_temp/.facebook_325452438679.jpg 私はストレージパーミッションが必要かもしれないと思った、それは正しい? – Tomhawk
@トムホーク:正しい。 'READ_EXTERNAL_STORAGE'パーミッションを保持する必要があります。これには、Android 6.0以降で実行時にパーミッションを要求する必要があります。 – CommonsWare
ありがとう、それは動作します。私がMarshmellowデバイスを持っていないので、そこのパーミッションで定義すればどうなるでしょうか?それはまだ私のエミュレータで動作します。 – Tomhawk
あなたは両方のために準備して変換しないでください。 – greenapps
'android.support.v4.content.FileProvider' – pskink