戌印-INUJIRUSHI- (Androidあれこれ)

Androidのプログラミングをメインにしてます。記事に貼られたソースコードはダブルクリックすることで行番号をはずしてコピーすることができます。

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
10

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ファイル削除後のメディアスキャン:MediaScan

AndroidアプリからSDカード内のファイルを削除した時、ギャラリー内のサムネイルが消えないという問題が発生。
困った時のグーグル先生であっさり解決。

参考サイト:
アルパカの具 - Androidアプリで保存した画像をギャラリーに反映させる
Android Wiki - MediaScan

どうやらSDカードをマウント/アンマウントした時にシステムがSDカード内に格納されているメディアファイル(画像、音楽、動画等)をスキャンしてデータベース化しているらしい。
これを MediaScan と言う。

File#delete() などでファイルを削除した時はこの MediaScan は実行されない。

明示的に MediaScan を実行するための Android API は用意されていないが
Broadcast 送信を行うことで MediaScan を呼ぶことができる。

// SDカードのパスを取得する
String path = "file://"
+ Environment.getExternalStorageDirectory();

// メディアスキャンを実行する
sendBroadcast(new Intent(
Intent.ACTION_MEDIA_MOUNTED, Uri.parse(path)));

ウイルス検知アプリが入っている状態でこの MediaScan を実行した場合、検知アプリが実行されてしまうので注意が必要。
スポンサーサイト

Comments

Leave a Comment


Body
プロフィール

とむ・やむくん

Author:とむ・やむくん
管理人について

Windows 7 / 64bit
Eclipse 4.2 Juno (日本語パッチ済)

スポンサーサイト
最新トラックバック
検索フォーム
ブロとも申請フォーム
QRコード
QR
Twitter
2013/01/04 19:00 カウント開始

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。