Android程式讀取sd卡中MP3資訊
Android系統提供了MediaScanner,MediaProvider,MediaStore等介面,並且提供了一套資料庫表格,通過Content Provider的方式提供給使用者。當手機開機或者有SD卡插拔等事件發生時,系統將會自動掃描SD卡和手機記憶體上的媒體檔案,如audio,video,圖片等,將相應的資訊放到定義好的資料庫表格中。在這個程式中,我們不需要關心如何去掃描手機中的檔案,只要瞭解如何查詢和使用這些資訊就可以了。
MediaStore中定義了一系列的資料表格,通過ContentResolver提供的查詢介面,我們可以得到各種需要的資訊。下面我們重點介紹查詢SD卡上的音樂檔案資訊。
先來了解一下ContentResolver的查詢介面:
Uri:指明要查詢的資料庫名稱加上表的名稱,從MediaStore中我們可以找到相應資訊的引數,具體請參考開發文件。
Projection: 指定查詢資料庫表中的哪幾列,返回的遊標中將包括相應的資訊。Null則返回所有資訊。
selection: 指定查詢條件
selectionArgs:引數selection裡有 ?這個符號是,這裡可以以實際值代替這個問號。如果selection這個沒有?的話,那麼這個String陣列可以為null。
SortOrder:指定查詢結果的排列順序
下面的命令將返回所有在外部儲存卡上的音樂檔案的資訊:
Cursor cursor = query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
得到cursor後,我們可以呼叫Cursor的相關方法具體的音樂資訊:
歌曲ID:MediaStore.Audio.Media._ID
Int id = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));
歌曲的名稱 :MediaStore.Audio.Media.TITLE
String tilte = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
歌曲的專輯名:MediaStore.Audio.Media.ALBUM
String album = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));
歌曲的歌手名: MediaStore.Audio.Media.ARTIST
String artist = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
歌曲檔案的路徑 :MediaStore.Audio.Media.DATA
String url = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
歌曲的總播放時長 :MediaStore.Audio.Media.DURATION
Int duration = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));
歌曲檔案的大小 :MediaStore.Audio.Media.SIZE
Int size = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE));
相關推薦
Android程式讀取sd卡中MP3資訊
Android系統提供了MediaScanner,MediaProvider,MediaStore等介面,並且提供了一套資料庫表格,通過Content Provider的方式提供給使用者。當手機開機或者有SD卡插拔等事件發生時,系統將會自動掃描SD卡和手機記憶體上的媒體檔
Android 讀取SD卡中檔案以及記憶體使用情況
android.os下的StatFs類主要用來獲取檔案系統的狀態,能夠獲取sd卡的大小和剩餘空間,例如通過例項化一個StatFs物件 new StatFs(path.getPath())把SD卡根目錄路徑傳進去可以獲取SD卡根目錄下的記憶體儲存狀態。呼叫系統API:Envi
android本地、sd卡儲存物件或集合,以及讀取該物件
<!-- 在SDCard中建立與刪除檔案的許可權 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
從sd卡中顯示一個圖片 Android
第一步:通過path得到file,我是把圖片放在mnt/sdcard/中的。 第二布:在判斷檔案存在後將檔案轉換為bitmap檔案。通過BitmapFactory.decodeFile來轉換的。
android 以追加形式寫檔案並把檔案儲存到SD卡中
android手機記憶體本來就不大,要是老把資料放在手機裡,很明顯會讓手機的使用者體驗到什麼是“卡”,所以,我們把資料要放到SD卡中,以減少手機記憶體的使用,本文僅寫入檔案,不對讀檔案進行說明。好,go! 第一步:新建android專案,命名為Test next ->
Android呼叫相機拍照,壓縮圖片後儲存SD卡中
最近在搞一個專案,需求是呼叫系統相機拍完照片後儲存本地,再上傳至後臺伺服器,但為了節省流量需要壓縮上傳,將圖片壓縮至100K以內。這個是在特定機器上執行,類似於手持POS機,但是它的相機幾乎沒有優化,對焦慢,而且拍照也不清晰,使用自己的手機呼叫系統相機拍照後圖片
android讀取sd卡音樂檔案顯示亂碼
android讀取sd卡音樂檔案,有的音樂title和藝術家等亂碼,利用如下方式順利解決:try{ if(title.equals(new String(title.getBytes("iso8859-1"), "iso8859-1"))){
將android專案assets資料夾下的檔案複製到SD卡中
<pre name="code" class="html">package com.lapel.activity.html; import java.io.File; import ja
Android實現下載圖片並儲存到SD卡中
在檔案裡設定一個點選方法已進行點選下載: download.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String
獲取android sd卡中某個資料夾下的所有圖片
由於最近的一個專案中需要獲取某個資料夾下的所有.txt檔案,所以自己研究了一個獲取sd卡中某個目錄下的所有圖片格式的圖片路徑 先看效果圖: 詳細程式碼如下: <RelativeLayout xmlns:android="http://schemas.android
Android SQLite的資料庫檔案儲存在SD卡中(一)
SQLite的特性: •輕量級 使用 SQLite 只需要帶一個動態庫,就可以享受它的全部功能,而且那個動態庫的尺寸想當小。 •獨立性 SQLite 資料庫的核心引擎不需要依賴第三方軟體,也不需要所謂的“安裝”。 •隔離
android 隨手記--讀取sd卡txt檔案
File file = new File(filepath); InputStream inputStream = new BufferedInputStream( new FileInputStream(
截圖保存位置不在已選擇的 “SD卡”中
mtk[DESCRIPTION]設置默認存儲路徑為內部存儲,截屏圖片保存在外置SD卡中。[SOLUTION]修改GlobalScreenshot.java的saveImageInBackgroundTask方法:String imageDir = Environment.getExternalStorageP
java小程式讀取檔案獲取檔案有用資訊
import java.util.regex.*; import java.io.*; import java.lang.*; public class GainNumber{ public static void main(String[]args)throws Exception
讀取SD卡上某個資料夾下的所有圖片資源,並迴圈播放
sd卡上的圖片資料夾名稱是Pictures 獲取sd卡根路徑下的api String path = Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+"Pictures"+"/"+"01.jpg";//獲取
Android 監控(檢查)SD卡指定目錄的變化
Android 開發有時候需要檢測某個資料夾的變化,就可以使用 FileObserver這個類。 FileObserver這個類是系統自帶的,可以直接使用。 private FileObserver mFileObserver; String p
程式讀取配置檔案中資料顯示在頁面上
1.首先在配置檔案中增加要讀取的資料 cas.cmCustPayment.receiptInvoiceName=\u9996\u94A2\u667A\u65B0\u8FC1\u5B89\u7535\u78C1\u6750\u6599\u6709\u9650\u516C\u53F8 ca
Android 動態載入sd卡里面so庫
有些so檔案太大,可以從手機記憶體或者sd卡里面拷貝到執行的應用程式裡面。介面都是之前打包在裡面了。還可以做so更新,就是把之前拷貝進行刪除,然後進行不重新打包apk,進行重新拷貝進去。 1,封裝好的類 package com.rtcmdemo.until; impor
Linux掛載SD卡中的 ext4 檔案系統
按照黑金教程移植的Linux,開發板啟動後掛載的檔案系統其實是 uImage 映象中小檔案系統(即 ramdisk 中的檔案系統)。Linux啟動後會出現這樣的提示 “mmc1: tried to reset card”、“blk_update_request: I/O er
獲取SD卡中的音樂檔案
小編最近在搞一個音樂播放器App,練練手; 首先遇到一個問題,怎麼獲取本地的音樂檔案? /** * 獲取SD卡中的音樂檔案 * * @param context * @return */ public static