关于android的2.2与4.4的文件读取的一点发现

好久没有写文章了,本来想写的东西,时间一长,就感觉不想写了,没什么用,到用时,又不知道去哪找了或怎么解决。

有一句话说的好啊,好记性不如烂笔头。

我要做到善于总结,及时整理,额.........................

好了,废话不多少,进入正题。

做了一个关于音乐播放器的小东西,需要读取文件(问题来了......),我查到android 4.4 版本关于二级外部存储器读写如下:

我编写的软件存在这样的问题,能够正常的运行,sdcard中有.mp3文件,不报错,但在4.4中就是现实不出来列表内容,2.2可以显示。

于是我抱着试试的心态,加入了如下权限。

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

没想到,成功了。有图有真相:

筛选文件用的FilenameFilter借口accept(File file, String name)方法,没有关于写入的吧。

这样看来上面那条权限,不仅是针对于写的,还有读,不知道这么说对不对啊,来个大神吧。

代码如下:

MainActivity.java

public class MainActivity extends ListActivity {

	//public final static String Path = "/sdcard/";
	ArrayAdapter<String> arrayAdapter = null;
	List<String> stringList;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		stringList = new ArrayList<String>();
		showMusicList();
		arrayAdapter = new ArrayAdapter<String>(MainActivity.this,
				android.R.layout.simple_list_item_1, stringList);
		setListAdapter(arrayAdapter);

	}

	public void showMusicList() {
		File[] files = null;
		File myFile = Environment.getExternalStorageDirectory();//获取sdcard路径
		File file = new File(myFile.getAbsolutePath());
		files = file.listFiles(new Filename()); //筛选文件

		if (files != null) {
			for (int i = 0; i < files.length; i++) {
				File t_File = files[i];
				stringList.add(t_File.getName());
			}

		}

	}

	class Filename implements FilenameFilter {

		@Override
		public boolean accept(File file, String name) {
			// TODO Auto-generated method stub
			return name.endsWith(".mp3");
		}

	}

}

.

时间: 2024-11-03 10:27:18

关于android的2.2与4.4的文件读取的一点发现的相关文章

Android gen根目录下自动生成的R文件指向问题

今天才弄明白,原来在调用vitamio包的时候使用它们的R文件,然后在迁入广告的时候出现了问题,但是瞎胡搞半天后把问题解决了,可没有明白这是什么原因. 今天更新应用又出现了相同的情况,无意中打开了gen的根目录妈蛋!发现里面的报名根本就不是我现在应用的包名.而是调用的那个工程的包名!这下终于找到根本原因了,但是怎么解决呢???----------->修改包名呗~~~~~~~可是你改了它又会自动生成了原来的那个,--------------后来终于发现原来这个R文件的包名适合manifest文件中

【分享】Android Studio专用文件转换工具:把ANSI文件批量另存为无BOM的UTF-8文件

[分享]Android Studio专用文件转换工具:把ANSI文件批量另存为无BOM的UTF-8文件 在Andoird Studio下编译java文件时,经常会出现像下面的错误: Error:(29, 43) 閿欒: 缂栫爜UTF-8鐨勪笉鍙槧灏勫瓧绗? 在这里,分享一个工具:ANSI文件批量另存为无BOM的UTF-8文件: 把下面代码用记事本存为AndroidStudioJava编码.vbs,双击即可使用: on error resume next Set WshShell=WScrip

Android学习笔记(四三):文件访问

之前我们学习了通过preference和SQLite数据库进行数据存储,也可以通过文件方式.文件可以是在应用打包时预置,也可以是应用所生成. 文件访问有两种方式:一:静态数据的文件可以防止在res/raw中,这些文件是只读的,只有在应用版本升级的时候进行修改,或者我们先读出这些数据,通过 reference的方式来处理,这样以后可以进行修订,但是这种方式,会有两份数据保存.二:另一种方式是通过URL访问文件,动态数据的读取也可以采用SQLite3的方式. res/raw/下静态文件的读取 在re

二十、Android -- SDcard文件读取和保存

背景                                                                                            一些东西可以存在自己定义的文件里面,这个文件可以在手机中,可以在SD卡中,在这里就主要介绍一下在SD卡中的存储和读取吧~ 代码                                                                                            

Android–SDcard文件读取和保存

背景                                                                                            一些东西可以存在自己定义的文件里面,这个文件可以在手机中,可以在SD卡中,在这里就主要介绍一下在SD卡中的存储和读取吧~ 代码                                                                                            

eclipse里配置Android ndk环境,用eclipse编译.so文件

做Android NDK开发时,c代码需要用ndk-build来进行编译,而java代码则需要用Android sdk编译. 编译c代码有两种方法: 一.写好c代码后,然后用cygwin搭建ndk-build环境,用ndk-build来编译出相关的.so文件(libs目录)之后, 再用eclipse里去编译java程序,从而使用.so文件.该方法在上一篇搭建NDK环境有介绍. 二.利用eclipse完全可以达到编译.so的目的. 首先,先装上CDT吧,这是Eclipse的C/C++环境插件,装上

Android多语言支持以及各国语言Values文件夹命名规则

创建好的项目工程由于需求 需要做多国语言的支持  下面介绍怎么快捷的创建文件夹 建好一个android 的项目后,默认的res下面 有layout.values.drawable等目录 这些都是程序默认的资源文件目录,如果要实现多语言版本的话,我们就要添加要实现语言的对应的资源文件. 首先我们点击添加Android Xml File按钮,在Resource Type中选择Values 在File中输入string.xml ,会出现下面的界面: 下面 以添加一个 英语(美国):values-en-

eclipse创建android项目,无法正常预览布局文件,出现This version of the rendering library is more recent than your version of ADT plug-in. Please update ADT plug-in...

eclipse创建android项目时,预览layout.xml文件时提示: This version of the rendering library is more recent than your version of ADT plug-in. Please update ADT plug-in,导致无法正常预览布局文件.问题根源:SDK版本过高,ADT版本过低.解决方法如下. 工具/原料 eclipse ADT插件 方法/步骤 找到eclipse文件夹,打开eclipse软件,创建and

Android 如何在java/native层修改一个文件的权限(mode)与用户(owner)?

前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net 雨季o莫忧离:http://blog.csdn.net/luckkof 正文 [Description] 如何在java/native层修改一个文件的权限(mode),用户(owner),组(group),以满足安全需要? [Keyword] 文件权限 文件用户 mode owner chomd chown permission [Solution] 在nativ