- 浏览: 79777 次
- 性别:
- 来自: 广州
最新评论
-
Tony_Lee-S:
已经说得很明白了吧?“把list强转成Serializable ...
在android中用 Intent 传递 List类型的数据(转) -
zhiduo5:
Activity与Service之间传递参数的介质这个怎么弄啊 ...
在android中用 Intent 传递 List类型的数据(转) -
mathlove:
很有用的内容
一个Android下的自动下载歌词的代码(转)
当手机或模拟器开机时,会调用android的MediaScanner,扫描sd卡和内存里的文件。以下是log信息。
12-13 15:39:11.062: VERBOSE/MediaPlayerService(67): Create new media retriever from pid 349<BR>
12-13 15:39:11.082: DEBUG/MediaScannerService(349): getDefaultLocale =zh_CN
12-13 15:39:11.122: DEBUG/SurfaceFlinger(102): Layer::requestBuffer(this=0x7c8c68), index=1, pid=12866, w=309, h=192 success
12-13 15:39:11.142: INFO/MediaScanner(349): mOriginalCount = 14, prune thumb flag = false<BR>
12-13 15:39:11.142: DEBUG/MediaScanner(349): prescan time: 44ms
12-13 15:39:11.142: DEBUG/MediaScanner(349): scan time: 13ms
12-13 15:39:11.142: DEBUG/MediaScanner(349): postscan time: 2ms
12-13 15:39:11.142: DEBUG/MediaScanner(349): total time: 59ms
12-13 15:39:11.152: DEBUG/MediaProvider(349): un-lock thumbnail worker
12-13 15:39:11.152: DEBUG/MediaProvider(349): un-lock thumbnail worker
12-13 15:39:11.182: DEBUG/MediaScannerService(349): done scanning volume external
那么扫描后的记录它保存到哪里了呢。哈。你觉得在哪里呢?data/data/com.android.media/providers/databases/external
它存了些什么信息呢,拉出来看看吧:
那么,我们直接使用ContentProvider就可以直接获取到sd卡中多媒体的信息了,你还用去listfile么?还用去自己解析媒体文件中的信息么(时长,文件名,专辑名。。应有尽有哦)?
好了,最后一个问题,当你往sd卡中添加一些多媒体文件的时候,android没有自动将它刷新到数据库中。那么我们怎么让它手动刷新呢,如下:
转自:
http://blog.csdn.net/cai200711/article/details/6594985
12-13 15:39:11.062: VERBOSE/MediaPlayerService(67): Create new media retriever from pid 349<BR>
12-13 15:39:11.082: DEBUG/MediaScannerService(349): getDefaultLocale =zh_CN
12-13 15:39:11.122: DEBUG/SurfaceFlinger(102): Layer::requestBuffer(this=0x7c8c68), index=1, pid=12866, w=309, h=192 success
12-13 15:39:11.142: INFO/MediaScanner(349): mOriginalCount = 14, prune thumb flag = false<BR>
12-13 15:39:11.142: DEBUG/MediaScanner(349): prescan time: 44ms
12-13 15:39:11.142: DEBUG/MediaScanner(349): scan time: 13ms
12-13 15:39:11.142: DEBUG/MediaScanner(349): postscan time: 2ms
12-13 15:39:11.142: DEBUG/MediaScanner(349): total time: 59ms
12-13 15:39:11.152: DEBUG/MediaProvider(349): un-lock thumbnail worker
12-13 15:39:11.152: DEBUG/MediaProvider(349): un-lock thumbnail worker
12-13 15:39:11.182: DEBUG/MediaScannerService(349): done scanning volume external
那么扫描后的记录它保存到哪里了呢。哈。你觉得在哪里呢?data/data/com.android.media/providers/databases/external
它存了些什么信息呢,拉出来看看吧:
那么,我们直接使用ContentProvider就可以直接获取到sd卡中多媒体的信息了,你还用去listfile么?还用去自己解析媒体文件中的信息么(时长,文件名,专辑名。。应有尽有哦)?
Cursor cursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, new String[]{ MediaStore.Audio.Media._ID,MediaStore.Audio.Media.DISPLAY_NAME,MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.DURATION,MediaStore.Audio.Media.ARTIST,MediaStore.Audio.Media.ALBUM, MediaStore.Audio.Media.YEAR,MediaStore.Audio.Media.MIME_TYPE,MediaStore.Audio.Media.SIZE, MediaStore.Audio.Media.DATA}, "_size>?", new String[]{1024*1024+""},null);
好了,最后一个问题,当你往sd卡中添加一些多媒体文件的时候,android没有自动将它刷新到数据库中。那么我们怎么让它手动刷新呢,如下:
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MEDIA_SCANNER_STARTED); intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED); intentFilter.addDataScheme("file"); scanReceiver = new ScanSdFilesReceiver(); registerReceiver(scanReceiver, intentFilter); sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory()))); private class ScanSdFilesReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (Intent.ACTION_MEDIA_SCANNER_STARTED.equals(action)) { scanHandler.sendEmptyMessage(STARTED); } if (Intent.ACTION_MEDIA_SCANNER_FINISHED.equals(action)) { scanHandler.sendEmptyMessage(FINISHED); } } } private Handler scanHandler = new Handler() { public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case STARTED: MyDialog scanDialog = new MyDialog(LocalList.this); scanAlertDialog = scanDialog.scanFile(); scanAlertDialog.show(); Log.i(TAG, "showing"); break; case FINISHED: ArrayList<Song> tempSongs = ReadFileList.readDataFromSD(LocalList.this, LOCAL); if (tempSongs != null && tempSongs.size()>0) { if (songs != null && songs.size()>0) { songs.clear(); songs.addAll(tempSongs); songAdapter.notifyDataSetChanged(); }else { songs = new ArrayList<Song>(); songs.addAll(tempSongs); initSong_lv(); } }else { Toast.makeText(LocalList.this, "SD卡中没有歌曲,请添加后再扫描", Toast.LENGTH_SHORT).show(); } Log.i(TAG, "finish"); if (scanAlertDialog!=null && scanAlertDialog.isShowing()) { scanAlertDialog.dismiss(); } unregisterReceiver(scanReceiver); break; case DISMISS: Log.i(TAG, "dismiss"); if (scanAlertDialog!=null&&scanAlertDialog .isShowing()) { scanAlertDialog.dismiss(); } default:break; }
转自:
http://blog.csdn.net/cai200711/article/details/6594985
发表评论
-
SQLite多线程读写实践及常见问题总结(转)
2013-02-07 11:04 2968基本操作的部分,大家都很熟悉了,这里根据个人切身经验,总结了 ... -
android内存溢出的解决方法(转)
2013-02-07 11:23 7661. 当项目中包含大量图片,或者图片过大 方法1:等比例缩 ... -
android中的跨进程通信的实现——远程调用过程和aidl(转)
2013-02-07 19:35 1303android在设计理念上强调组件化,组件之间的依赖性很小。 ... -
在EditText/TextView中插入表情图片、样式、下划线等(转)
2012-08-22 12:01 1563EditText: 通常用于显示文字,但有时候也需要在文字中 ... -
自定义Tab选项卡(转)
2012-08-21 08:44 1456效果: 代码: import android.app. ... -
android设置button透明度(转)
2012-08-18 22:09 1199Button或者ImageButton的背景设为透明或者半透明 ... -
Android中的TabHost(转)
2012-08-17 14:50 2176介绍 有时,我们想在一个window中显示多个视图,这时就需 ... -
Android开发之蓝牙(Bluetooth)操作(二)--修改本机蓝牙设备的可见性,并扫描周围可用的蓝牙设备(转)
2012-08-15 16:54 1353一. 修改本机蓝牙设备的可见性 二. 扫描周围可用的蓝牙设备 ... -
Android开发之蓝牙(Bluetooth)操作(一)--扫描已经配对的蓝牙设备(转)
2012-08-15 16:49 1655一. 什么是蓝牙(Bluetooth)? 1.1 BuleT ... -
一个Android下的自动下载歌词的代码(转)
2012-08-15 13:41 11031. 原理是用Baidu音乐搜索的连接,拼参数进去读取歌词。 ... -
ViewPager多页面滑动切换以及动画效果(转)
2012-08-14 16:55 1848一、首先,我们来看一下效果图,这是新浪微博的Tab滑动效果。我 ... -
Android的Handler总结(转)
2012-08-14 14:18 838一、Handler的定义: 主要接受子线程 ... -
AsyncTask的用法(转)
2012-08-14 14:11 865在开发Android应用时必须遵守单线程模型的原则: Andr ... -
Android逐帧动画(转)
2012-08-13 16:46 1749Android有两种动画,一种是tweened animati ... -
android 怎样为多媒体文件生成缩略图(转)
2012-08-10 17:11 12141、Video 对于视频,取第一帧作为缩略图,也就是怎样从fi ... -
TextView 实现自动换行(转)
2012-08-10 16:44 1363package com.liao.intentservice; ... -
android:屏幕自适应(转)
2012-08-10 16:10 1366demo下载: http://www.eoeandroid.c ... -
listview加载性能优化ViewHolder (转)
2012-07-28 15:16 1422在android开发中Listview是一个很重要的组件,它以 ... -
android 应用程序Activity之间数据传递与共享的几种途径(转)
2012-07-19 11:03 14741.基于消息的通信机制 Intent ---boudle , ... -
Android进程间通信--消息机制及IPC机制实现(转)
2012-07-19 10:51 801一、概念及说明 Android ...
相关推荐
Android SD卡扫描某类文件(.mp3、.mp4...)
本篇文章是对Android扫描sd卡与系统文件进行了详细的分析介绍,需要的朋友参考下
扫描特定类型的文件,当然,随着Android平台下的硬件设备越来越多,越来越强大。我们有理由相信,它以后将不仅仅只支持MP4和3GP格式的视频文件,所以我们必须使用两种方式结合的方法来获得最大的视频集合作为我们的...
android ProgressBar扫描SD卡文件
cocos2dx下c++调用Java参考
android通过代码读取手机sd卡中的音乐文件,放在adapter中,然后放到一个ListView中,做音乐列表
初探异步 AsyncTask 最基本的异步DEMO,AsyncTask实现扫描SD卡指定后缀类型的文件(递归扫描)
扫描Android SD卡下的文件,过滤掉文件夹.扫描Android SD卡下的文件,过滤掉文件夹.
一个Android文件管理器APP源码,类似于360手机助手的功能,可以记录文件使用次数,可按分类来扫描管理文件或应用信息,并可将扫描的信息存入数据库,扫描SD卡文件,判断是否为文档、判断是否为音乐、判断是否为视频...
Android平台,使用native递归的方法,遍历手机sd卡目录的mp3文件,在JNI层,输出MP3文件的绝对路径。
代码可用,不可用,请吐槽! 实现功能如下: 1.得到设备的内,外存储路径 2.一个变量指定需要扫描的文件...3.在得到的路径里面,递归扫描文件,找到了就不扫描了,没有找到就直到扫描完 4.全程LOG打印 5.代码简单可用
基于Android的手机文件扫描 可以扫面出所有的txt文件 并且可以打开
源码参考,欢迎下载
自动扫描SD卡上所有的txt文件,在list中显示,用户可勾选需要的文件,点击导入之后会返回文件路径。 类似于图片查找,只需要在activity中使用调用扫描文件就可以方便的使用
您可能感兴趣的文章:Android SD卡上文件操作及记录日志操作实例分析将文件放到Android模拟器的SD卡中的两种解决方法Android获取assets文件夹中的数据并写入SD卡示例基于Android扫描sd卡与系统文件的介绍Androi
系统sd卡视频扫描,获取缩略图,用listView显示,需要的下载下试试,代码肯定能用,不能用给我留言
1. **SD卡图片检索**:应用自动扫描SD卡中的所有图片文件,提供直观的文件列表供用户选择。 2. **图片预览**:选中图片后,应用将以全屏模式展示图片细节,支持手势缩放和滑动操作。 3. **RAR文件处理**:除了常规...
支持清理SD卡中临时垃圾文件,比如系统日志,debug文件,可以让SD卡更干净,让手机摆脱卡顿、发热等问题。 需要root权限。 内存卡垃圾及缓存清理工具,可以方便管理清除sd卡上的垃圾文件,界面友好。 支持清理项目...
这款安卓手机数据恢复软件(安卓系统恢复)可以恢复手机或从其它设备传输的任何照片与视频,除了音乐,文件,档案外,还包括存储在您的Android手机上的SD卡中的资料;进行扫描,检查和恢复,3步即