0

システム ギャラリーにビデオ ファイルのみを表示するファイルのリストを読み込もうとしています。

final Intent intent1 = new Intent(Intent.ACTION_PICK);
intent1.setDataAndType(android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI, "video/*");
startActivityForResult(intent1, ACTIVITY_SELECT_VIDEO);

デバッガーActivityNotFound例外が発生し、アプリがクラッシュしますが、実際の電話ではギャラリーが読み込まれ、ビデオファイルのみが表示されます。

これは、クラッシュがない場合を除いて、画像ファイルのみをロードする場合の動作とまったく同じです。

方法:

a)適切なギャラリーを一貫してロードする

b)すべてのデバイスで同じように動作するとは限らないため、この例外をキャッチするか、条件ステートメントで回避します

4

1 に答える 1

1

適切なギャラリーを一貫してロードする

をダンプし、コンストラクターで"video/*"提供するだけです。すでにビデオのスコープが設定されている必要がありますが、これはコレクションの MIME タイプとして不適切です。UriIntentandroid.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI

または、android.provider.MediaStore.Video.Media.CONTENT_TYPEではない MIME タイプとして使用し"video/*"ます。

この例外をキャッチ

try/ブロックを使用catchすると、Java で例外をキャッチするのと同じ方法になります。ActivityNotFoundExceptionですRuntimeException

または条件文で回避する

PackageManagerと または のいずれかqueryIntentActivities()を使用しますresolveActivity()

于 2012-11-19T20:08:35.537 に答える