public
class
personcontentprovider
extends
contentprovider
@override
public
boolean
oncreate()
/***
* 作用: 判斷 傳進來的 uri 查詢的是一條資料 還是多條資料
* */
@override
public string gettype(uri uri)
return
null;
}@override
public cursor query(uri uri, string projection, string selection,
string selectionargs, string sortorder)
break;
case person_query_item_code: // 查詢的是單條資料, uri末尾出有乙個id
if(db.isopen()) , null, null, sortorder);
return cursor;
}break;
default:
throw
new illegalargumentexception("uri不匹配: " + uri);
}return
null;
}@override
public uri insert(uri uri, contentvalues values)
break;
default:
throw
new illegalargumentexception("uri不匹配: " + uri);
}return
null;
}@override
public
intdelete(uri uri, string selection, string selectionargs)
break;
default:
throw
new illegalargumentexception("uri不匹配: " + uri);
}return
0; }
@override
public
intupdate(uri uri, contentvalues values, string selection,
string selectionargs)
break;
default:
throw
new illegalargumentexception("uri不匹配: " + uri);
}return
0; }
}
清單檔案:定義訪問許可權 的訪問路徑
android:name=".providers.personcontentprovider"
android:authorities="com.itheima28.sqlitedemo.providers.personcontentprovider"
android:readpermission="aa.bb.cc.read"
android:writepermission="aa.bb.cc.write" >
provider>
測試:
public
class
textcase
extends
androidtestcase
public
void
testdelete() ;
int count = resolver.delete(uri, where, selectionargs);
log.i(tag, "刪除行: " + count);
}public
void
testupdate() );
log.i(tag, "更新行: " + count);
}public
void
testqueryall() , null, null, "_id desc");
if(cursor != null && cursor.getcount() > 0)
cursor.close();}}
public
void
testquerysingleitem() , null, null, null);
if(cursor != null && cursor.movetofirst())
}}
內容提供者
package com.xh.tx.utils import android.content.context import android.database.sqlite.sqlitedatabase import android.database.sqlite.sqlitedatabase.cur...
內容提供者
讀取系統簡訊,首先查詢原始碼獲得簡訊資料庫內容提供者的主機名和路徑,然後 contentresolver cr getcontentresolver cursor c cr.query uri.parse content sms new string,null,null,null while c.m...
內容提供者
含義 不同應用之間資料互動的中介 介面 案例 1 mainactivity 2 myopenhelper public class myopenhelper extends sqliteopenhelper 當資料庫第一次建立的時候呼叫,適合做表結構的初始化 override public void...