問題タブ [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 の MediaStore を更新する方法
質問: メディア ストアで DELETED ファイルのエントリを更新する方法を教えてください。
コードで写真を外部ストレージから削除した後、削除した写真のスロットがギャラリーにまだ表示されます - 空白の写真です。
ギャラリーにはメディア ストアが反映されているようで、電話が再起動されるまで、または通常はメディアが再スキャンされるまで、削除された写真がメディア ストアで検出されます。
削除されたファイルをスキャンしようとしても、削除されたファイルのスキャンには役立ちませんでした(新規または既存のファイルに対してのみ機能します): MediaScannerConnection.scanFile(Application.get(), new String[]{file.getPath()}, null, null)
(親フォルダーもスキャンしてみました)。
またACTION_MEDIA_SCANNER_SCAN_FILE
、無駄にしようとしました。例:Application.get().sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(file)))
ブロードキャスト レシーバーを送信して、外部ストレージ全体を再スキャンする (したがって、メディア ストアを更新する) と、うまくいきました。Application.get().sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.fromFile(Environment.getExternalStorageDirectory())))
しかし、 4.4の時点で、ACTION_MEDIA_MOUNTED システム ブロードキャストを手動で送信しようとすると、Android がセキュリティ例外をスローするようです。@CommonsWare の投稿を参照してください: http://commonsware.com/blog/2013/11/06/android-4p4-permission-regressions.html
そのため、ファイル(/写真/ビデオ/など)の削除時にメディアストアを更新するための解決策がありません。
android-intent - Androidで画像/ビデオとオーディオファイルを使用して単一のファイルを作成します
ユーザーが画面に写真やビデオを表示し、これに音声コメントを付ける Android アプリを開発しています。終了すると、ユーザーは、音声コメント付きの写真またはビデオを含む新しいビデオを確認します。
事例: 1) 画像+音声コメント --> 元の画像と音声コメント付きの新しいビデオ。2) 動画 + 音声コメント --> オリジナル動画と音声コメント付きの新しい動画。
私はたくさん検索しましたが、どうすればこれを実装できますか?
私の意見では、次のオプションがあるかもしれません: 1) オーディオと画像/ビデオ ファイルを別々に保存し、それらから新しいビデオを作成します。2) 写真/ビデオに対する音声コメント中に、バックエンドで並行して新しいビデオを作成します。
しかし、オプションをどのように実装できるかわかりませんか? 同じことをするための良いチュートリアルはありますか?
前もって感謝します。
まだ答えはありません。私の質問は明確ではありませんか、それとも不可能ですか? 誰でも私を導いてください。ありがとう
android - Nexus/Kitkat デバイスであっても、フォルダーについて MediaScanner に正しく通知する方法は?
バックグラウンド
インターネットから次のように定義された特定のフォルダーにいくつかの画像をダウンロードするアプリを作成しています。
ギャラリーとメディアを表示するアプリを作成して、それらの画像を通知して表示できるようにしたいと考えています。
残念ながら、Kitkat バージョン (正確には 4.4.2) の Nexus 4 で問題が発生しています。うまくいくこともあれば、うまくいかないこともあります。
問題
この問題に関する投稿はたくさんあります。私はそれらの多くを試しましたが、単純なフォルダー パスを使用して機能するものはありませんでした。
- Intent の意図を使用します。ここに示すACTION_MEDIA_SCANNER_SCAN_FILE。これはどのデバイスでも機能しませんでした
- こことここに示すように、 MediaScannerConnectionClient のインスタンスを作成し、接続が完了したらスキャンを呼び出します。接続に成功するため、これの何が問題なのかわかりません。
- ここに示すように、リスナーの有無にかかわらず、 scanFileを呼び出します。これは Galaxy S3 ではうまくいきましたが、Nexus 4 ではうまくいきませんでした。代わりに、通知するファイルの配列が必要です。
私が試したこと
これは私が行ったことです(繰り返しますが、Android 4.3を搭載したGalaxy S3では正常に動作しますが、Android 4.4.2を搭載したNexus 4では動作しないことがあります):
質問
スキャンするフォルダ全体を通知するにはどうすればよいですか?
このメソッドが Kitkat でしか機能しないのはなぜですか? Nexus 端末だけですか、それとも他の端末もですか?
すべてのデバイスと Android バージョンをサポートするには、何を使用する必要がありますか?
android - ギャラリー アプリに新しい画像が表示されるたびに通知を受け取るにはどうすればよいですか?
バックグラウンド
ユーザーが新しい画像をダウンロードするか、カメラを使用してキャプチャすると、ギャラリー アプリが更新されて新しい画像が表示されます。
ギャラリーアプリが示すように、作成方法(カメラ、ブラウザなど)に関係なく、新しい画像が作成されるとすぐに通知を受ける必要があります。
問題
すべての種類のメディア ファイルのスキャンを担当する mediaScanner Android コンポーネントがあり、それが終了すると、インテント " MEDIA_SCANNER_FINISHED " を送信することになっています (この例に示すように)。
そこで、ユーザーがカメラ アプリから写真を撮るたびにトーストが表示されることを期待して、次のコードを追加しました。
マニフェスト:
Java ファイル:
何らかの理由で、このコードは機能しません...
質問
コードの何が問題になっていますか?
写真を撮った後、broadcastReceiver が呼び出されることはありますか?
それを行う正しい方法は何ですか?
本当に contentObserver を使用してその変更を監視し (このようなものを使用して)、このためだけにアプリを実行し続ける必要がありますか? 私は本当にそうではないことを願っています...
android - カスタム MediaScanner ライブラリ/MediaStore の代替品?
デフォルトに依存しないカスタム オープンソース ライブラリはありますかMediaStore
(車輪の再発明を避けるため)。または、独自のスキャナーを作成する必要がありますか? 問題:-
ローカル ファイルからもプレイリストを作成できる音楽プレーヤーを Android で作成しました。ローカル メディアに関する詳細は、Android のMediaStore
. 音楽ファイルを移動するまで、すべて正常に動作します。メディア ファイルが移動されると、Android のエントリの ID フィールドMediaStore
が変更されます。これは明らかに、保存された (古い) ID を使用してファイルにアクセスしようとすると失敗することを意味します。どうすればこれを回避できますか? ありがとう!
android - 撮影した写真を MediaStore に追加する方法
撮影した写真を MediaStore に追加して、Gallery アプリが (デバイスを再起動せずに) 検索できるようにします。アプリの最小 SDK は 9 です。ヘルプ、ブログ、ドキュメントを歓迎します。
android - Activity クラスの Android MediaScannerConnection の新しいインスタンスが例外をスローする
私は最初の Android アプリを作成するまであと数歩ですが、自分では解決できない問題があるようです...ちょっとした助けが必要です!! :D
したがって、私の主な活動では、次のように宣言したいと思います。
onCreate() メソッドで変数「con」を使用しており、MediaScannerConnectionClient インターフェイスを実装して動作させています。
onCreate() メソッドで「con」を宣言することはできません。これを行うと、ユーザーが画面の向きを変更すると、ランタイムがアクティビティを強制終了し、onCreate() を再度呼び出すためです (私たち全員が知っているように :D)これにより、アプリがスキャンを終了しません...
コンパイルはうまくいきます!しかし、アプリを起動すると、logcat が頭にこれをスローします。
私を助けてください!私の最初のプロジェクトのみんな!!! 私は本当にその問題を解決するために一生懸命努力しましたが、それを克服することができます... :(
ところで、私の言語には申し訳ありません... :)
ごきげんよう!
android - メタデータ付きの Android 4.4 KitKat SD カードの MediaStore にメディアを追加する方法
背景: Android 4.4 で、Google はアプリに SD カードへの書き込みアクセスを許可しないことを決定しました。
ただし、アプリは /SDCard/Android/data/App Package Name に書き込むことができます。
これが私がやったことです。MP3 ファイルを /Android/data/ に書き込みました。次に、この MP3 ファイルを Android ミュージック プレーヤーに表示します。
私は次のことを試しました...
と....
と...
どちらも content://media/external/file/xxxxx のような URI を持つファイルとしてファイルを MediaStore に追加します。
ただし、ファイルはオーディオとして追加されません。MediaStore を更新してファイルをオーディオとして宣言できますが、ファイルのメタデータがインポートされません。
独自のタグ リーダーを作成する以外に、内部メモリや KitKat 以前の SD カードと同様に、メディア スキャナでファイルをスキャンしてメタデータを挿入するにはどうすればよいですか?