1

これは、MEDIARESCANに関するFAQである必要があります

私の環境:

アンドロイド4.1.1

com.android.gallery3dは、キャッシュとサムネイルを管理するGalleryアプリのパッケージです。

ギャラリー設定は次の場所にあります:/data/data/com.google.android.gallery3d/shared_prefs/com.google.android.gallery3d_preferences.xml

<map>
<string name="pref_camera_recordlocation_key">none</string>
<int name="editor-update-image/*" value="312" />
<boolean name="prefs_sync_on_wifi_only" value="true" />
<string name="system_release">4.1.1</string>
<boolean name="pref_camera_first_use_hint_shown_key" value="false" />
<int name="cache-up-to-date" value="1" />   ** tried changing this **
<int name="editor-update-video/*" value="312" />
<int name="external_storage_fsid" value="-1" />
<int name="picasasync.prefetch.clean-cache" value="0" />
<boolean name="has-editor-image/*" value="true" />
<string name="pref_camera_jpegquality_key">superfine</string>
<int name="pref_version_key" value="5" />
<boolean name="pref_video_first_use_hint_shown_key" value="false" />
<int name="packages-version" value="312" />
<boolean name="has-editor-video/*" value="false" />
</map>

'cooliris'から古いバージョンのCacheServiceへのAPIはここにあります...

私の質問:

私のアプリは2つのことをします:

  1. 新しいムービー(mimetype = video / *、ファイル拡張子= .3gp)を/ mnt / sdcard/Moviesに挿入します

  2. (G +、Youtubeなど)に完全な共有コンテキストを提供するために、Gallery3Dサムネイルの「更新された」バージョンに依存しています

問題は、ギャラリーキャッシュが再起動するまで更新されないことです。

ギャラリーアプリ内で、新しく挿入された映画のサムネイルを取得して、アプリが映画を電話に保存されているディレクトリに挿入した後、合理的な間隔で表示する方法を見つけることができません。自分のキャッシュを実装する必要があるとは確信していません。Gallery3Dアプリに独自のキャッシュを更新させるインターフェースまたは設定の切り替えを見つけたいだけです。キャッシュの更新により、新しい映画の親指が通常のギャラリーリストに追加されます。更新された新しいThumbを使用すると、ユーザーは新しい映画の完全なソーシャル共有メニューを利用できます。キャッシュの更新がないと、ギャラリーアプリにサムネイルが表示されず、アプリ内のアイテムのmime /タイプ(video / *、.3gp)のローカルコンテキストメニューにG +、youtubeなどが含まれません。下の写真を参照してください。ギャラリーの望ましい状態のために」■更新後のアクションバーのコンテキストメニュー。更新する前は、G +とYoutubeは私のアプリの映画アイテムのコンテキストメニューになく、アイテムのサムはまだギャラリーアプリにありません。十分長く待つと、Galleryアプリに親指が常に表示されるのでイライラします。

SYNCのGoogleアカウントデータ設定を切り替えてみました。

「cache-up-to-date」のギャラリー設定を手動で編集して、falseに設定してみました。

サードパーティのアプリからGallery3D.CacheServiceのインテントをリクエストしようとしませんでした。それは次のようなものになります...

Intent i = new Intent();
i.setClassName("CacheService", "com.google.android.cache.CacheService"); (pkg , class)
startService(i);

しかし、実装の正確なクラス名がわからないため、アプリからそのservice.intentを要求できるかどうかわかりません。また、再起動後にlogcatを参照すると、logcatに表示されないと思いますか?アプリのcoolirisソースバージョンをログに記録することはできますが、JBがcom.google.androidバージョンをリファクタリングしたため、現時点ではそれほど良いとは思いません。

再起動/更新後のサムネイルから、G +、Youtube、完全なソーシャルで必要なコンテキスト... ここに画像の説明を入力してください

4

1 に答える 1

2

https://groups.google.com/forum/?fromgroups=#!topic/android-developers/waOFIm899II

間違った質問をしました。

「メディアの再スキャンを強制する方法」を尋ねるべきでした

于 2012-08-26T14:54:19.550 に答える