1. 程式人生 > 其它 >第一行程式碼學習記錄(contentprovider)

第一行程式碼學習記錄(contentprovider)

獲取許可權

危險許可權只能動態請求

點選檢視程式碼
	if(ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
            ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},1);
	@Override
	public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        switch (requestCode) {
            case 1:
                if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                   pic =  fileManager.getImg();
                } else {
                    Toast.makeText(this, "You denied the permission", Toast.LENGTH_SHORT).show();
                }
                break;
            default:
        }
    }
結果的函式只需要3個引數,分別是我們發起請求的時候寫的請求程式碼,申請的許可權,已經同意的許可權。

內容提供器

一種是使用現有的內容提供器(我們可以在程式裡面的獲取到的),來讀取別的應用的操作和資料,一種是自己建立自己程式的的內容提供器,來分享自己程式的資料和操作。

使用現有的內容提供器

利用content-resolver提供的方法。要獲得該類的實體物件,可以通過context的getContentResolver,這個實體物件下面有crud四種方法,查詢主要用query獲取cusor(有點像游標)以後進行查詢。


有5個引數,第一個是uri引數,content:xxx直接呼叫mediastore這個靜態類下面的就可以了,他已經幫我們把uri轉化成了這種型別的引數,
佔位符

是?號

建立自己程式的內容提供器

extends ContentProvider然後在進行重寫方法就行了
最重要的是™要在manifest裡面進行註冊