Re: [android-developers] Abnormal behavior of media scanner when I renamed a folder which have some media files.
First, I would use MediaScannerConnection instead of that broadcast.
Second, I think you have to recursively scan all of the contents --
from other reports I have seen, it appears that you can only scan
files, not folders.
On Wed, Jul 4, 2012 at 12:03 AM, Hyuck <hyuckmin.kwon@gmail.com> wrote:
> Thank you for your interest.
>
> after I renamed a folder. I did re-scanning by sending broadcast intent as
> below.
>
> Context applicationContext =
> MyApplication.getInstance().getApplicationContext();
>
> applicationContext.sendBroadcast(new
> Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
>
> and then, delete former folder name in database as below.
>
> public boolean deleteFolder(String folderPath){
>
>
>
> boolean isSuccessful = false;
>
> Cursor cursor = null;
>
> String selection;
>
>
>
> DELETE_FOLDER : {
>
> //1. Get folder '_id' list.(with duplicated one).
>
> ArrayList<Integer> folderIdList = new
> ArrayList<Integer>();
>
>
>
> String[] projection = {
>
> FileSchema.Columns._ID
>
> };
>
> selection = FileSchema.Columns.DATA + " = \"" +
> folderPath + "\"";
>
> cursor = SqliteWrapper.query(getContext(),
> getContentResolver(), FileSchema.getContentUri("external"), projection,
> selection, null, null);
>
> if(cursor != null && cursor.moveToFirst() &&
> cursor.getCount() > 0){
>
> int dataIndex = cursor.getColumnIndex(FileSchema.Columns._ID);
>
> do {
>
> folderIdList.add(cursor.getInt(dataIndex));
>
> } while ( cursor.moveToNext() );
>
> cursor.close();
>
> } else {
>
> isSuccessful = false;
>
> break DELETE_FOLDER;
>
> }
>
>
>
> //2. Delete folders in DB.
>
> while ( folderIdList.isEmpty() == false ) {
>
> int folderId = folderIdList.remove(0);
>
> int numberOfDeleted =
> SqliteWrapper.delete(getContext(), getContentResolver(),
> FileSchema.getContentUri("external"),
> "_id=\""+Integer.toString(folderId)+"\"", null);
>
> if (numberOfDeleted < 0) {
>
> isSuccessful = false;
>
> break DELETE_FOLDER;
>
> }
>
> }
>
> //3. Delete files in DB.
>
> selection = FileSchema.Columns.DATA + " LIKE \"" +
> folderPath + "/%\"";
>
> int numberOfDeleted = SqliteWrapper.delete(getContext(),
> getContentResolver(), FileSchema.getContentUri("external"), selection,
> null);
>
> if(numberOfDeleted < 0){
>
> isSuccessful = false;
>
> break DELETE_FOLDER;
>
> }
>
>
>
> //4. Success!
>
> isSuccessful = true;
>
> break DELETE_FOLDER;
>
> }
>
>
>
> return isSuccessful;
>
> }
>
>
>
> On Wednesday, July 4, 2012 1:58:22 AM UTC+9, Mark Murphy (a Commons Guy)
> wrote:
>>
>> How did you do the "re-scanning"?
>>
>> On Tue, Jul 3, 2012 at 12:53 PM, Hyuck <hyuckmin.kwon@gmail.com> wrote:
>> > Hi All,
>> >
>> > I have develop a kind of file manager app. recently, I have met a
>> > strange
>> > behavior of media scanner.
>> > There was a folder(A) with some media files in it. and I renamed the
>> > folder
>> > name to B.
>> > However, after a re-scanning , there is still folder A, and the folder
>> > have
>> > media files which have 0bytes.
>> > is there anyone who have this kind of problem? if so, please give me
>> > some
>> > advise. it would be much appreciated.
>> >
>> > Hyuck.
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups "Android Developers" group.
>> > To post to this group, send email to android-developers@googlegroups.com
>> > To unsubscribe from this group, send email to
>> > android-developers+unsubscribe@googlegroups.com
>> > For more options, visit this group at
>> > http://groups.google.com/group/android-developers?hl=en
>>
>>
>>
>> --
>> Mark Murphy (a Commons Guy)
>> http://commonsware.com | http://github.com/commonsguy
>> http://commonsware.com/blog | http://twitter.com/commonsguy
>>
>> _The Busy Coder's Guide to Android Development_ Version 3.7 Available!
>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to android-developers@googlegroups.com
> To unsubscribe from this group, send email to
> android-developers+unsubscribe@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
--
Mark Murphy (a Commons Guy)
http://commonsware.com | http://github.com/commonsguy
http://commonsware.com/blog | http://twitter.com/commonsguy
Android Training... At Your Office: http://commonsware.com/training
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home