第一行代碼-內容提供者筆記

  1. 首先來看一下權限
    1. 目前Android系統都有運行時權限。運行時權限是屬於那些危險權限(CALENDAR CAMERA CONTACTS LOCATION MICROPHONE PHONE SENSORS SMS STORAGE),必須需要用戶手動確認如果按照常規加入權限則不通過,應用如何申請運行時權限

a. if(ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.CALL_PHONE)!=

Packagemanager.PEMISSION_GRANTED){

ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CALL_PHONE},1);

}else{

執行你要執行的操作

}

@Override

public void onRequestPermissionResult(int requestCode,String[] permissions,int[] grantResults){

swich(requestcode){

case 1:

if(grantResult.length>0&&grantResult[0]==PackagerManager.PERMISSION_GRANTED){

執行你要執行的操作

}else{

提示拒絕請求信息

}

}

}

  1. 爲什麼要使用 內容提供者 :當需要操作其他應用的數據時,使用普通方法如下
    1. SqliteDatabase.openDatabase(''路徑'',遊標工廠,模式);//沒有權限需要更改權限
    2. chmod 777 更改權限再去讀就可以讀出來了
  2. 使用內容提供者 內容提供者描述:應用自己提供一個內容提供者,封裝數據提供出來,其他應用可以通過內容解析者訪問內容容提供者,從而來操作數據
  3. 如何定義一個內容提供者
    1. 寫一個類,繼承contentProvider,實現以下方法
      1. onCreate
      2. query
      3. insert
      4. delete
      5. update
    2. 清單文件中配置,屬性添加一個android:authorities="Cherseey" //自定義字符串用來匹配
    3. 在類中定義一個UriMatcher
      1. private static final UriMatcher sURIMatcher=new UriMatcher(UriMatcher.NO_MATCH);
    4. 寫一個靜態代碼塊(類加載就執行一次)
      1. static{ sURIMatcher.addURI(“Cherseey",”query“,1 自定義的常量);//可以添加多個}
    5. 在query方法中調用 sUriMatcher.match(uri)返回的值是否匹配你自定義的常量1來判斷 是否返回cursor
    6. allMessage 輸入pub 查看是否有Pub 報名:定義的內容提供者的名字 是否創建成功
    7. 在其他應用中調用getContentResolver.query(...);
      1. Uri uri=Uri.parse("content://Cherseey/query"); getContentResolver(uri,null,null,null,null)
  4. 查詢短信
    1. Uri uri=Uri.parse("content://sms/")//查詢所有的意思; getContentResolver(uri,new String[]{"address","date","body"}],null,null,null)
    2. 讀寫權限
  5. contentObserver
    1. 應用觀察者可以觀察外部應用來造作本應用的數據庫傳過來的Uri
    2. Uri uri=Uri.parse("content://Cherseey");getContentResolver().registerContentObserver(uri,true,new MyContentObserver(new Handler()));在MyContentObserver中覆寫onChange()方法來監聽改變
    3. getContext.getContentRessolver().notifyChange(uri.null)//寫在query中通知更新

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章