Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 關於android的2.2與4.4的文件讀取的一點發現

關於android的2.2與4.4的文件讀取的一點發現

編輯:關於Android編程

好久沒有寫文章了,本來想寫的東西,時間一長,就感覺不想寫了,沒什麼用,到用時,又不知道去哪找了或怎麼解決。

有一句話說的好啊,好記性不如爛筆頭。

我要做到善於總結,及時整理,額.........................尴尬


好了,廢話不多少,進入正題。


做了一個關於音樂播放器的小東西,需要讀取文件(問題來了......),我查到android 4.4 版本關於二級外部存儲器讀寫如下:

\


我編寫的軟件存在這樣的問題,能夠正常的運行,sdcard中有.mp3文件,不報錯,但在4.4中就是現實不出來列表內容,2.2可以顯示。

於是我抱著試試的心態,加入了如下權限。<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PHByZSBjbGFzcz0="brush:java;">
沒想到,成功了。有圖有真相:

\


篩選文件用的FilenameFilter借口accept(File file, String name)方法,沒有關於寫入的吧。

這樣看來上面那條權限,不僅是針對於寫的,還有讀,不知道這麼說對不對啊,來個大神吧。


代碼如下:

MainActivity.java

public class MainActivity extends ListActivity {

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

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		stringList = new ArrayList();
		showMusicList();
		arrayAdapter = new ArrayAdapter(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");
		}

	}

}



.










  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved