android media庫中external的讀取

來源:互聯網
上載者:User

一、android是如何管理多媒體檔案(音頻、視頻、圖片)的資訊。 通過DDMS,我們在/data/data/com.android.providers.media下找到資料庫檔案      開啟external.db檔案進一步查看:在media表格下,可以看到檔案路徑(_data)和Uri的標示ID(_id)的對應關係。   二、URI與檔案相互轉換    1.從URI獲得檔案路徑 [java]  string  myImageUrl = "content://media/external/images/media/***";       Uri uri = Uri.parse(myImageUrl);                 String[] proj = { MediaStore.Images.Media.DATA };          Cursor actualimagecursor = this.ctx.managedQuery(uri,proj,null,null,null);         int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);          actualimagecursor.moveToFirst();                    String img_path = actualimagecursor.getString(actual_image_column_index);         File file = new File(img_path);       Uri fileUri = Uri.fromFile(file);   2.由檔案路徑得到URI [java]  Uri mUri = Uri.parse("content://media/external/images/media");                Uri mImageUri = null;                  Cursor cursor = managedQuery(                       MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null,                       null, MediaStore.Images.Media.DEFAULT_SORT_ORDER);               cursor.moveToFirst();                  while (!cursor.isAfterLast()) {                   String data = cursor.getString(cursor                           .getColumnIndex(MediaStore.MediaColumns.DATA));                   if (picPath.equals(data)) {                       int ringtoneID = cursor.getInt(cursor                               .getColumnIndex(MediaStore.MediaColumns._ID));                       mImageUri = Uri.withAppendedPath(mUri, ""                               + ringtoneID);  www.2cto.com                     break;                   }                   cursor.moveToNext();               }   

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.