android 53 ContentProvider內容提供者

來源:互聯網
上載者:User

標籤:

ContentProvider內容提供者:像是一個中介軟體一樣,一個媒介一樣,可以以標準的增刪改差操作對手機的檔案、資料庫進行增刪改差。通過ContentProvider尋找sd卡的音頻檔案,可以提供標準的方法而且不用知道音頻檔案在那個檔案夾裡面,只要設定條件就可以找到。安卓系統把音視頻、圖片存在系統內部的資料庫裡面,ContentProvider操作的是資料庫不是去檔案夾裡面去找。sd卡和記憶卡的檔案安卓系統都會登記,登記檔案類型、路徑,檔案名稱,檔案大小都儲存在資料庫裡。ContentProvider是通過ContentResolver類操作的。

 

text/html:text是大類型,text下面有html,css等小類型。

images/jpeg:images是大類型,jpeg是images裡面的一個小類型。

 

擷取圖片資訊:

package com.sxt.day07_08;import android.os.Bundle;import android.provider.MediaStore;import android.provider.MediaStore.Images;import android.app.Activity;import android.content.ContentResolver;import android.database.Cursor;import android.util.Log;import android.view.Menu;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        getImagesInfo();    }    private void getImagesInfo() {        ContentResolver resolver = getContentResolver();        String[] projection={//查詢的列            Images.Media._ID,//圖片id,系統建立            Images.Media.DATA,//圖片sd卡路徑            Images.Media.WIDTH,            Images.Media.HEIGHT,            Images.Media.SIZE//圖片大小        };        //EXTERNAL_CONTENT_URI是sd卡的圖片uri,後面是條件和預留位置和排序        Cursor c = resolver.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, null);        while(c.moveToNext()){            int id=c.getInt(c.getColumnIndex(Images.Media._ID));            String path=c.getString(c.getColumnIndex(Images.Media.DATA));            double width=c.getDouble(c.getColumnIndex(Images.Media.WIDTH));            double height=c.getDouble(c.getColumnIndex(Images.Media.HEIGHT));            double size=c.getDouble(c.getColumnIndex(Images.Media.SIZE));            StringBuilder sb=new StringBuilder();            sb.append("id=").append(id)              .append(",path=").append(path)              .append(",width=").append(width)              .append(",height=").append(height)              .append(",size=").append(size);            Log.i("main",sb.toString());//列印所有圖片資訊        }            }}

系統描述檔案添加:

<uses-sdk                                                      讀取sd卡申請的許可權
android:minSdkVersion="8"
android:targetSdkVersion="18" />

android 53 ContentProvider內容提供者

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.