Android コンテントプロバイダ
[
Front page
] [
New
|
List of pages
|
Search
|
Recent changes
|
Help
]
Start:
''[[手机开发指南>手机开发指南]]'' > ''[[Android>Android]]...
~
*Ⅰ.コンテントプロバイダ に アクセスする方法 [#aff20e0d]
** 1. コンテントプロバイダ利用の定石 [#r20f15c3]
*** 1.1 アクセス権を設定する [#f4f3b9b2]
マニフェストファイルにアクセス権を実装する必要がある~
例)電話帳アクセス:android.permission.READ_CONTACTS
実際のマニフェストファイルの例
<uses-permission android:name="android.permission.REC...
<uses-permission android:name="android.permission.ACC...
<uses-permission android:name="android.permission.ACC...
<uses-permission android:name="android.permission.SEN...
<uses-permission android:name="android.permission.ACC...
<uses-permission android:name="android.permission.INT...
<uses-permission android:name="android.permission.WRI...
~
*** 1.2. アクセス処理を実装する [#p8901ef3]
使用するURIを指定する~
例)電話帳の場合:content://contacts/people/ = androi...
"content://"+パッケージ名+"."+クラス名+"/"+データカテ...
~
//最初のレコードを取得
final Uri uri = ContentUris.withAppendedId(android.pr...
final Cursor result = managedQuery(uri, null, null, n...
//名前を格納した列のインデックスを取得
final int index = result.getColumnIndex(android.provi...
//最初の要素を取得(本当は成功したかどうかチェックすべ...
result.moveToNext();
final String name1 = result.getString(index);
~
** 2. 様々なコンテントプロバイダ [#r1dd6539]
*** 2.1 Media Provider 読書 [#uc4dafbe]
ファイルの書き込み方法~
a.コンテントプロバイダに格納したいファイルの属性を設...
//外部メディアを指定
Uri media = MediaStore.Images.Media.EXTERNAL_CONTENT_...
//保存するイメージ属性を設定
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.DISPLAY_NAME,name);
values.put(MediaStore.Images.Media.MIME_TYPE,"image/j...
b.コンテントプロバイダから格納領域を取得し、そこに実...
//イメージを格納する領域を確保して、そのURIを取得する
ContentResolver r= getContentResolver();
Uri imageUri = r.insert(media,values);
try{
//収録したUriからアプトプットストリームを取り出す
OutputStream out = r.openOutputStream(imageUri);
bimap.compress(Bitmap.CompressFormat.JPEG,50,out);
} catch (FileNotFoundException e) {
Log.e("HelloContentsProviders" , e.toString() );
return null;
}
//*Ⅱ.コンテントプロバイダ を 実装する方法 [#h536678c]
//**DRMStore [#x2d3c017]
// android.permission.ACCESS_DRM が必要
~
''[[戻る>Android]]''
End:
''[[手机开发指南>手机开发指南]]'' > ''[[Android>Android]]...
~
*Ⅰ.コンテントプロバイダ に アクセスする方法 [#aff20e0d]
** 1. コンテントプロバイダ利用の定石 [#r20f15c3]
*** 1.1 アクセス権を設定する [#f4f3b9b2]
マニフェストファイルにアクセス権を実装する必要がある~
例)電話帳アクセス:android.permission.READ_CONTACTS
実際のマニフェストファイルの例
<uses-permission android:name="android.permission.REC...
<uses-permission android:name="android.permission.ACC...
<uses-permission android:name="android.permission.ACC...
<uses-permission android:name="android.permission.SEN...
<uses-permission android:name="android.permission.ACC...
<uses-permission android:name="android.permission.INT...
<uses-permission android:name="android.permission.WRI...
~
*** 1.2. アクセス処理を実装する [#p8901ef3]
使用するURIを指定する~
例)電話帳の場合:content://contacts/people/ = androi...
"content://"+パッケージ名+"."+クラス名+"/"+データカテ...
~
//最初のレコードを取得
final Uri uri = ContentUris.withAppendedId(android.pr...
final Cursor result = managedQuery(uri, null, null, n...
//名前を格納した列のインデックスを取得
final int index = result.getColumnIndex(android.provi...
//最初の要素を取得(本当は成功したかどうかチェックすべ...
result.moveToNext();
final String name1 = result.getString(index);
~
** 2. 様々なコンテントプロバイダ [#r1dd6539]
*** 2.1 Media Provider 読書 [#uc4dafbe]
ファイルの書き込み方法~
a.コンテントプロバイダに格納したいファイルの属性を設...
//外部メディアを指定
Uri media = MediaStore.Images.Media.EXTERNAL_CONTENT_...
//保存するイメージ属性を設定
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.DISPLAY_NAME,name);
values.put(MediaStore.Images.Media.MIME_TYPE,"image/j...
b.コンテントプロバイダから格納領域を取得し、そこに実...
//イメージを格納する領域を確保して、そのURIを取得する
ContentResolver r= getContentResolver();
Uri imageUri = r.insert(media,values);
try{
//収録したUriからアプトプットストリームを取り出す
OutputStream out = r.openOutputStream(imageUri);
bimap.compress(Bitmap.CompressFormat.JPEG,50,out);
} catch (FileNotFoundException e) {
Log.e("HelloContentsProviders" , e.toString() );
return null;
}
//*Ⅱ.コンテントプロバイダ を 実装する方法 [#h536678c]
//**DRMStore [#x2d3c017]
// android.permission.ACCESS_DRM が必要
~
''[[戻る>Android]]''
Page: