SDカード内の画像を削除する方法

すこしハマったんでメモ。
ContentProviderからレコードを削除するにはdeleteメソッドを使うんですが
deleteコマンドを発行する前にレコードを選択してあげないといけません。

ソース

Cursor c = getContentResolver().query(Media.EXTERNAL_CONTENT_URI, new String[] { BaseColumns._ID }, BaseColumns._ID + "=?", new String[] { String.valueOf(imageId) }, null);
if (c.getCount() > 0) {
  c.moveToFirst();
  getContentResolver().delete(ContentUris.appendId(Media.EXTERNAL_CONTENT_URI.buildUpon(), imageId).build(), null, null);
}
c.close();
File f = new File(path);
if(f.exists()){
  f.delete();
}