サンプルコマンド:
$ content query --uri content://yuki.authority/このコマンドは、コンテンツへのCRUD操作をコンテンツプロバイダ経由で実行します。
例えば、データベースレコードの検索や削除などが可能です。
SQLite3コマンドでも同様にデータベースの編集が可能ですが、
SQLite3コマンドの対象がデータベースであるのに対して、contentコマンドの対象はコンテンツプロバイダです。
これはつまり、
- コンテンツプロバイダの簡単な動作確認として使用可能
- コンテンツプロバイダを経由するため、コンテンツオブサーバへの通知も実行される
●contentコマンドの使い方
使い方は& adb shell contentと入力すれば使い方が表示されます。
【query】
$ adb shell content query --uri <URI> [--projection <PROJECTION>] [--where <WHERE>] [--sort <SORT_ORDER>]
【insert】
$ adb shell content insert --uri <URI> --bind <BINDING> [--bind <BINDING>...]
【update】
$ adb shell content update --uri <URI> [--where <WHERE>]
【delete】
$ adb shell content delete --uri <URI> --bind <BINDING> [--bind <BINDING>...] [--where <WHERE>]・<URI>
コンテンツプロバイダのURI
(例)--uri content://hoge.authority
・<PROJECTION>
検索対象のカラム名を指定します。指定方法は <COLUMN_NAME>[:<COLUMN_NAME>...]
(例)column1:column2:column3
・<WHERE>
SQLのWHERE句を指定します。
(例)--where "column1='where_string'"
・<SORT_OREDER>
ソート対象の列を指定します。
(例)--sort "column1 DESC"
・<BINDING>
次のフォーマットに従い、カラムにバインドする情報を指定します。
<COLUMN_NAME>:<TYPE>:<COLUMN_VALUE>
<TYPE>にはb - boolean, s - string, i - integer, l - long, f - float, d - doubleが指定可能です。
(例)column:s:new_string
●動作確認
動作確認の対象となるテーブル情報は下記。・Authority
yuki.authority
・テーブル情報
cid name type ---- ------- -------- 0 _id INTEGER 1 number INTEGER
・テーブル内容
_id number ---------- ------------ 1 1416078507 2 1355288181 3 380734541 4 254152153 5 18301077
【query】
# content query --uri content://yuki.authority/ --projection _id:number --where "_id BETWEEN 1 AND 3" --sort "_id DESC" _id:number --where "_id BETWEEN 1 AND 3" --sort "_id DESC" Row: 0 _id=3, number=380734541 Row: 1 _id=2, number=1355288181 Row: 2 _id=1, number=1416078507
【insert】
# content insert --uri content://yuki.authority/ --bind number:i:1234567 yuki.authority/ --bind number:i:1234567-結果確認-
# content query --uri content://yuki.authority/ --projection _id:number --where "number=1234567" --sort "_id DESC" _id:number --where "number=1234567" --sort "_id DESC" Row: 0 _id=6, number=1234567
【update】
# content update --uri content://yuki.authority/ --bind number:i:9999 yuki.authority/ --bind number:i:9999-結果確認-
# content query --uri content://yuki.authority/ --projection _id:number --where "number=9999" _id:number --where "number=9999" Row: 0 _id=1, number=9999 Row: 1 _id=2, number=9999 Row: 2 _id=3, number=9999 Row: 3 _id=4, number=9999 Row: 4 _id=5, number=9999 Row: 5 _id=6, number=9999
【delete】
# content delete --uri content://yuki.authority/ --where "_id=1" yuki.authority/ --where "_id=1"-結果確認-
# content query --uri content://yuki.authority/ --projection _id:number om.example.testcprovider/ --projection _id:number Row: 0 _id=2, number=9999 Row: 1 _id=3, number=9999 Row: 2 _id=4, number=9999 Row: 3 _id=5, number=9999 Row: 4 _id=6, number=9999
以上です。