問題タブ [mediastore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3854 参照

android - ファイルと MediaStore エントリの削除

メディアストア経由で表示される SD カードからファイルを削除する際に 2 つの問題があります。

メディアストアクエリの結果と、選択したアイテムを削除することになっている下の4つのボタンにあるリストビューがあります。

これまでのところ、ファイル自体の削除は正常に機能しています。それでも、プログラムを再起動しても、リストは更新されません。だから..以下のコード全体を追加しました。

0 投票する
3 に答える
5153 参照

android - MediaStoreは画像の高さ/幅を取得します

クエリMediaStore.Images.Media.EXTERNAL_CONTENT_URIを実行していますが、クエリは正常に機能します。定数を持つすべての列からデータを取得できます。次に例を示します。

幅/高さの列には定数(no MediaStore.Images.Media.WIDTH)がないため、。を使用してそれらにアクセスしようとしていますimagecursor.getLong(imagecursor.getColumnIndex("width"));

getLong、getString、getIntを使用しようとしました...何もありません-常に同じクラッシュ。

スタックは次のとおりです。

これについて助けていただければ幸いです...他に何を試すことができるかわかりません。

ありがとうございました!

0 投票する
1 に答える
928 参照

java - Android のメディア メタ sqlite データベースで生のクエリを実行することは可能ですか?

音楽を再生する小さなアプリを書いています。私のターゲットは Android API レベル 7 以上です。

アプリは、「ポップ」、「ロック」、「ヒルビリー」など、ユーザーが設定を介して選択した特定のジャンルのセットでタグ付けされた音楽のみを一覧表示して再生する必要があります。

現在、選択したジャンルでタグ付けされたトラックを含むすべてのアルバム ID とアルバム名を効率的に検索する方法を見つけようとしています。

これは SQL では簡単です。電話は、メディア メタ データを sqlite データベースに保存します。私は電話の内部メモリでそれを見つけ、adb経由でコピーし、いくつかのsqliteクエリを試しました. 結果のクエリは、一連の結合を含む SQL ワンライナーであり、正常に機能します。

これは、少なくとも API レベル 7 以上では、Android SDK を使用する Java ではより困難なようです。MediaStore で managedQuery を使用して、同じ基礎となるデータベースでいくつかの限定された SQL 構文を実行できますが、正しく理解していれば、この API を使用するときに JOIN も DISTINCT もありません。

また、これを見落としているかもしれませんが、MediaStore では1 つのジャンルのすべてのトラックを検索できますが、1 つのクエリで複数のジャンルのすべてのトラックを検索することはできません。

そのため、これはすべて Java で少し手動で行う必要があります。プログラムは、ジャンルごとにいくつかの managedQuery() 呼び出しを実行する必要があり、プログラムは結果を結合して、sqlite の外部 (この作業が属する場所) でそれらを Java で区別する必要があります。

これは本当にそれが行われなければならない方法ですか?生のクエリを sqlite データベース ファイルに送信する方法はありませんか?

ありがとう!

0 投票する
1 に答える
2217 参照

android - MediaStore managedQuery でフォルダーを指定する

こんにちは、SD カードのフォルダーを指定して、そのフォルダーのサブフォルダー (例: /mnt/sdcard/Folder/SubFolder) 内のすべての画像を取得したいと考えています。私はこれを持っています:

そして、私のグリッドビューのsetAdapterには次のものがあります:

それは機能しますが、sdcard に含まれるすべての画像が表示されます...「content:///mnt/sdcard/folder/subfolder」のような URI パスを設定しようとしましたが、機能しません...どうすればよいですかMediaStore managedQuery で、スキャンする特定のフォルダーを指定しますか??

よろしくお願いします!:)

0 投票する
1 に答える
1045 参照

android - メディアストアからのオーディオとビデオを表示する ListView

メディアストアからオーディオとビデオの両方を表示するリストを作成しようとしています。ただし、そのようなクエリを作成する方法がわかりません。オーディオとビデオの両方の情報を同時に取得することさえ可能ですか?

したがって、ビデオとオーディオを照会するには、次のようにします。

CursorJoinerまたはの使用を検討しましMergeCursorたが、これらの使用方法や、正しい解決策でさえ確信が持てません。

私の質問は次のとおりです。オーディオとビデオの両方の情報を含むカーソルを返す mediaStore のクエリを作成する方法はありますか、または or を使用するなど、より複雑なものが必要ですCursorJoinerMergeCursor

最初に述べたように、私の目標は、メディアストア内のすべてのオーディオとビデオを表示するリストを作成することです。これは正しいアプローチですか、それとも間違った角度から見ているのでしょうか?

ありがとう。

0 投票する
1 に答える
6961 参照

android - asynctask を使用してコンテンツ プロバイダーからイメージ ビットマップをロードする

MediaStore コンテンツ プロバイダーを介して SD カード上のすべての画像をクエリし、それらのサムネイルを GridView に表示しようとしています。

ただし、メインスレッドで画像のサムネイルを読み込むと、スクロールが非常に遅くなります...

だから私は asynctasks を介してビットマップを読み込もうとしました: スクロールのパフォーマンスは向上しましたが、グリッド項目は正しいビットマップを取得するまでサムネイルをリロードし続けます...

ビットマップをロードする私の asynctask は次のとおりです。

そして、ここに私のカスタムカーソルアダプターがあります:

このコードでカーソルをクエリし、アダプターに送信します。

カスタム カーソル アダプタの bindview() が想定よりも頻繁に呼び出されるように見えます...スクロールのパフォーマンスを維持しながら、グリッドビューの画像のリロードを停止する方法を知っている人はいますか??

前もって感謝します。

0 投票する
1 に答える
2665 参照

android - が Android で新しいメディア ファイルのスキャンを実行しているかどうかを検出する方法 (バックグラウンド)

Main と Processing の 2 つのアクティビティがあります。処理アクティビティでは、フォルダー内のファイル名に対して編集操作を行い、スキャンを開始してブロードキャスト経由で更新し、スキャンが終了したことを確認します。

スキャンが実行されている場合、Activity 防止処理を渡したいと思います。最初にスキャンが実行されていないかどうかを確認してから、2 番目の処理アクティビティを開始できますか? このように。

これを確認する必要があります.Androidがスキャンを実行しているときにファイルの名前を変更すると、処理アクティビティでファイルを編集すると、最終的に変更前と同じようにサイズが0バイトの他のファイルがフォルダー内に見つかります。そのため、スキャンが完了するまで待つ必要があります。解決策が見つかりません。

更新:私はこれを見つけました

私はこれを試します

そして、私は常に "content://media/none/media_scanner" を取得します... ACTION_MEDIA_MOUNTED を送信した後に getMediaScannerUri() を要求すると、"content://media/none/media_scanner" とは異なるものを取得する必要があります ???

0 投票する
4 に答える
24675 参照

android - オーディオファイルのID3タグ(メタデータ)を取得して設定(変更)する方法は?

次のようなオーディオファイルのメタデータであるID3タグの変更に取り組んでいます。

  • アーティスト
  • タイトル
  • アルバム

そしてコアポイント、。編集したID3タグは私のアプリにのみ表示されます。

0 投票する
1 に答える
503 参照

android - アンドロイドで一緒にオーディオとビデオを一覧表示

すべてのオーディオファイルとビデオファイルをリストビューにまとめてリストする必要があります。

オーディオを一覧表示する方法と、ビデオを個別に一覧表示する方法を知っています。

オーディオとビデオの両方を一緒にリストできる他の方法はありますか?

0 投票する
3 に答える
3416 参照

android - OnActivityResult()内でdata.getDataを呼び出すとNullPointerException?

呼び出して、カメラで撮影した保存済みの写真のパスを表示しようとしています

Toast 内で実行しますが、アプリがクラッシュします。私も試しdata.getDataStringましたが解決しませんでした

なんでも。

コード: