- 浏览: 82840 次
- 性别:
- 来自: 广州
最新评论
-
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 3040基本操作的部分,大家都很熟悉了,这里根据个人切身经验,总结了 ... -
android内存溢出的解决方法(转)
2013-02-07 11:23 8251. 当项目中包含大量图片,或者图片过大 方法1:等比例缩 ... -
android中的跨进程通信的实现——远程调用过程和aidl(转)
2013-02-07 19:35 1348android在设计理念上强调组件化,组件之间的依赖性很小。 ... -
在EditText/TextView中插入表情图片、样式、下划线等(转)
2012-08-22 12:01 1605EditText: 通常用于显示文字,但有时候也需要在文字中 ... -
自定义Tab选项卡(转)
2012-08-21 08:44 1507效果: 代码: import android.app. ... -
android设置button透明度(转)
2012-08-18 22:09 1309Button或者ImageButton的背景设为透明或者半透明 ... -
Android中的TabHost(转)
2012-08-17 14:50 2231介绍 有时,我们想在一个window中显示多个视图,这时就需 ... -
Android开发之蓝牙(Bluetooth)操作(二)--修改本机蓝牙设备的可见性,并扫描周围可用的蓝牙设备(转)
2012-08-15 16:54 1477一. 修改本机蓝牙设备的可见性 二. 扫描周围可用的蓝牙设备 ... -
Android开发之蓝牙(Bluetooth)操作(一)--扫描已经配对的蓝牙设备(转)
2012-08-15 16:49 1744一. 什么是蓝牙(Bluetooth)? 1.1 BuleT ... -
一个Android下的自动下载歌词的代码(转)
2012-08-15 13:41 12091. 原理是用Baidu音乐搜索的连接,拼参数进去读取歌词。 ... -
ViewPager多页面滑动切换以及动画效果(转)
2012-08-14 16:55 1905一、首先,我们来看一下效果图,这是新浪微博的Tab滑动效果。我 ... -
Android的Handler总结(转)
2012-08-14 14:18 926一、Handler的定义: 主要接受子线程 ... -
AsyncTask的用法(转)
2012-08-14 14:11 905在开发Android应用时必须遵守单线程模型的原则: Andr ... -
Android逐帧动画(转)
2012-08-13 16:46 1795Android有两种动画,一种是tweened animati ... -
android 怎样为多媒体文件生成缩略图(转)
2012-08-10 17:11 12871、Video 对于视频,取第一帧作为缩略图,也就是怎样从fi ... -
TextView 实现自动换行(转)
2012-08-10 16:44 1405package com.liao.intentservice; ... -
android:屏幕自适应(转)
2012-08-10 16:10 1406demo下载: http://www.eoeandroid.c ... -
listview加载性能优化ViewHolder (转)
2012-07-28 15:16 1466在android开发中Listview是一个很重要的组件,它以 ... -
android 应用程序Activity之间数据传递与共享的几种途径(转)
2012-07-19 11:03 15181.基于消息的通信机制 Intent ---boudle , ... -
Android进程间通信--消息机制及IPC机制实现(转)
2012-07-19 10:51 845一、概念及说明 Android ...
相关推荐
在Android平台上,对SD卡进行特定类型的文件扫描是一项常见的...通过理解和运用以上知识点,你就可以实现Android应用扫描SD卡上指定类型的文件功能了。记住,一定要遵循Android的最佳实践,确保应用的稳定性和性能。
通过这种方式,C++代码可以利用Java的便利性(如访问Android系统API)来扫描SD卡上的MP3文件,并将结果保存到本地文件。在实际应用中,你还需要考虑线程安全、错误处理和性能优化等问题。在cocos2dx框架下,你可能...
扫描特定类型的文件,当然,随着Android平台下的硬件设备越来越多,越来越强大。我们有理由相信,它以后将不仅仅只支持MP4和3GP格式的视频文件,所以我们必须使用两种方式结合的方法来获得最大的视频集合作为我们的...
在Android系统中,扫描SD卡和系统文件是应用程序获取存储设备上媒体文件(如音频、视频、图片等)信息的重要方式。Android提供了MediaScanner服务,它会在设备启动时自动扫描SD卡和内部存储器,将文件信息存储到系统...
音乐文件通常存储在外部存储(如SD卡)的`/sdcard/Music`目录下,或者内部存储的特定位置。开发者需要通过`Environment.getExternalStorageDirectory()`获取外部存储路径,然后遍历对应目录寻找音乐文件。 2. **...
### Android读取SD卡中音乐文件列表 在Android开发中,常常需要实现的功能之一就是读取设备中的音乐文件。这通常用于音乐播放器类的应用程序,以便用户可以浏览并选择他们想要播放的歌曲。本文将详细介绍如何通过...
在Android平台上,遍历SD卡中的视频文件是开发视频播放器等应用的常见需求。这个过程涉及到了文件系统的操作、多媒体信息的获取以及性能优化等多个方面。以下将详细讲解这个主题。 首先,Android系统提供了`java.io...
系统能够全盘扫描SD卡,并将新增的文件通知系统,如微信、QQ等应用接收的文件。 主要功能 1. 文件扫描系统能够扫描Android设备的外部存储(SD卡)中的文件,特别是关注特定的文件类型(如PDF、Word、Excel、PPT等...
扫描SD卡表明工具可以访问和遍历外部存储设备,而不仅仅是手机内部存储。扫描APK包则表示该工具专门针对Android应用的安装文件,这可能对开发者、系统管理员或者希望管理手机上APK文件的普通用户很有用。SD和APK的...
通过以上步骤,我们可以实现一个在Android JNI层扫描SD卡并查找MP3文件的功能。这个过程中涉及到了Android的Java-Native交互、文件操作、权限管理以及C/C++编程等多个技术点,是Android开发中的一个重要实践。
这些文件都是构建和运行Android应用不可或缺的部分,但它们与异步扫描SD卡的`AsyncTask`知识关联不大。 总的来说,`AsyncTask`是Android中处理异步任务的得力工具,尤其适用于简单快速的任务,如文件扫描。通过合理...
在Android中,访问外部存储(如SD卡)需要权限。在AndroidManifest.xml中添加以下权限: ```xml <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> ``` 然后,我们可以使用`java.io....
扫描SD卡可能会耗时较长,为了不阻塞用户界面,可以使用`AsyncTask`或`IntentService`进行后台处理。`AsyncTask`适合简单的异步任务,而`IntentService`适用于更复杂的操作,可以避免内存泄漏。 5. **文件读取**:...
要扫描SD卡下的文件,我们首先需要获得读取文件的权限。在Android 6.0及以上版本,由于运行时权限的引入,应用需要在运行时请求`READ_EXTERNAL_STORAGE`权限。在AndroidManifest.xml中声明权限还不够,还需要在运行...
本文将深入探讨Android系统在开机启动时如何扫描SD卡上的APK文件,并对其流程进行详细的源码分析。 #### 二、开机启动流程概述 当Android设备启动时,系统会经历一系列初始化步骤。这些步骤包括但不限于加载内核、...
总结起来,在Android中将MP3文件存放到虚拟SD卡涉及以下几个关键步骤:申请读写权限、下载文件、保存到外部存储以及扫描文件至媒体库。遵循这些步骤,你的应用就能在遵循Android最佳实践的同时,实现高效且可靠的MP3...
一个Android文件管理器APP源码,类似于360手机助手的功能,可以记录文件使用次数,可按分类来扫描管理文件或应用信息,并可将扫描的信息存入数据库,扫描SD卡文件,判断是否为文档、判断是否为音乐、判断是否为视频...
代码可用,不可用,请吐槽! 实现功能如下: 1.得到设备的内,外存储路径 2.一个变量指定需要扫描的文件...3.在得到的路径里面,递归扫描文件,找到了就不扫描了,没有找到就直到扫描完 4.全程LOG打印 5.代码简单可用
在IT领域,尤其是在移动设备和图像...总的来说,扫描SD卡上的所有图片涉及到文件系统知识、图片文件格式理解、操作系统文件管理工具的使用,以及编程实现的技巧。掌握这些知识点对于日常的图片管理和IT工作都十分有益。