問題タブ [android-mediascanner]
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.
android - 写真を撮った後のギャラリーの更新androidカメラアプリケーションが失敗する
カメラアプリケーションを構築していて、写真を撮った後(PictureCallbackのファイルに書き込んだ後)、デバイス上のメディアファイルを更新したいので、MediaScannerConnectionを使用します(次のコードのように)。しかし、デバイスのギャラリーアプリケーションで画像を表示できません。ただし、PCで画像を表示することはできます(画像はSDカードにあります)。私は何かが足りないのですか?
MediaScannerConnection.scanFile(this,
new String[] {pictureFile.toString()}, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.d("ExternalStorage", "Scanned " + path + ":");
Log.d("ExternalStorage", "-> uri=" + uri);
}
});
android - MediaScannerConnection.scanFile()の完了を通知しながら、非同期で呼び出すにはどうすればよいですか?
MediaStoreから情報を収集したい。.nomediaファイルを使用すると、ファイルがスキャンされない場合があるため、明示的な呼び出しを使用して、ファイルがスキャンされたことを確認します。
だから私は呼んでいます
...スキャンを強制します。ただし、これには時間がかかる場合があるため、バックグラウンドで実行したいと思います...
私はこれを達成しようとしていくつかの問題に遭遇しました:
最初に、新しいスレッドからMediaScannerConnectionを呼び出そうとしましたが、アクティビティの終了後にスキャナーが最も早く開始されたため、これは機能しませんでした。「コンテキストアクティビティ」パラメータは、このアクティビティの終了後に開始されると思います。
続行する方法は結果に依存するため、別のスレッド内で結果を待つことは必ずしも問題ありません。
したがって、両方の方法は機能しません。:-(
だから私の質問は:MediaScannerConnection.scanFile()
アクティビティスレッド以外のスレッドで開始する方法は?これが不可能な場合、非同期処理を実行するためのベストプラクティスは何ですか?IMHO、待機は新しいスレッド内で発生する必要がありますが、続行する方法を決定するために結果を使用するには遅すぎます。
最初の試行のサンプル-結果が返されることはありません:
2回目の試行のサンプル:
この問題を解決するための良いアイデアを持っている人に事前に感謝します!
android - Androidのメディアスキャナー:ファイルを削除するにはどうすればよいですか?
音楽や写真など、いずれかのタイプのメディアライブラリにリストされているファイルとリストされていないファイルを削除するアプリを作成しています。このMediaScannerConnection.scanFile
メソッドを使用してメディアライブラリにファイルを追加することはできますが、ファイルが削除されたことをサービスに通知するための呼び出しはないようです。存在しなくなったファイルのパスを送信しても、目的の動作にはなりません。Androidストレージに存在しなくなったアイテムをライブラリから削除するにはどうすればよいですか?
java - メディアスキャナーがイベントを完了した後に応答する方法
メディアスキャナーに問題があります。私のプログラムでは、メディアスキャナーを実行しています...
sendBroadcast(new Intent(
Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://" + Environment.getExternalStorageDirectory())));
上記のコードは機能しますが、非同期として実行されるため、少し面倒です。
mediascannerが動作を完了するまで停止する方法はありますか?
SDカードから音楽ファイルのリストをフェッチしていますが、問題は、mediascannerが結果を返す前にリストがフェッチされていることです。
android - MediaScanner ServiceConnectionLeaked
このクラスを使用して、SDCard 内のアプリ イメージをスキャンします。
機能しましたが、LogCat では常にエラーが表示されました。
何が問題ですか?ありがとう。
android - Android: コンテンツが削除されたことを MediaScanner に通知するにはどうすればよいですか?
現在 MediaScanner を使って Android アプリを開発しており、Sqlite データベースで管理されているコンテンツ データにアクセスし、scanFile メソッドを使用して新しく追加されたコンテンツを更新できるようになりました。
やりたいことは、MediaStoreで管理しているSqliteのデータをリフレッシュ(更新)することです。
Android の電源を切ってから、MediaScanner を明示的に起動し、Sqlite MediaStore でデータを更新できますが、Android でコンテンツ (MP3 サウンド ファイルや JPEG 画像ファイルなど) が削除されたことを MediaScanner に通知する方法がわかりません。がオンになっています。
MediaScanner のコンテンツ ファイルの削除を通知し、MediaStore の Sqlite データを更新する方法を教えてください。
感謝と敬意
android - Motoblur が原因で、メディア スキャナーを強制的に実行できません
メディア フォルダ (具体的には DCIM/カメラ) 内の一部のファイルを変更するアプリケーションがあります。
これらの変更を行った後、アプリケーションはこのブロードキャストを送信して MediaScanner を強制的に実行し、ギャラリー アプリが次回開かれたときに変更が反映されるようにします。
これは、標準の android を実行しているデバイスで完璧に機能します。ただし、motoblur を備えたデバイスでは失敗し、ログに次の出力が表示されます。
INTERACT_BLUR_SERVICE
この許可を使用する方法はありますか? または、メディア スキャナをコマンドで実行できるようにする他の方法はありますか?
android - コードを使用して SD カード イメージをスキャンする方法
SD カードの画像をスキャンして、アプリケーションに画像を表示したいと考えています。カメラから写真を撮ったとき、アプリケーションからSDカードに画像を保存できますが、表示できません。しかし、電話で画像を手動でコピーすると、sdcard メディアのスキャンが実行され、画像を表示できます。私の質問は、コーディングによって SD カードを中央値スキャンする方法はありますか?
android - MediaStoreは画像の高さ/幅を取得します
クエリMediaStore.Images.Media.EXTERNAL_CONTENT_URI
を実行していますが、クエリは正常に機能します。定数を持つすべての列からデータを取得できます。次に例を示します。
幅/高さの列には定数(no MediaStore.Images.Media.WIDTH
)がないため、。を使用してそれらにアクセスしようとしていますimagecursor.getLong(imagecursor.getColumnIndex("width"));
。
getLong、getString、getIntを使用しようとしました...何もありません-常に同じクラッシュ。
スタックは次のとおりです。
これについて助けていただければ幸いです...他に何を試すことができるかわかりません。
ありがとうございました!