详解 Android content provider
2010-03-15 15:35:00 来源:WEB开发网这种方法适合于小的图标类图片或者一小段音频剪辑。如果要添加大量的二进制数据。例如照片,一整首歌曲,在数据表中保存该数据的content: URI,然后调用文件URI的ContentResolver.openOutputStream()函数(这会使ContentProvider把数据保存在一个文件里,,把这个文件的路径保存在记录的一个隐含字段中)。就这方面来说,MediaStore Content Provider是分配图像、视频和音频数据的主要的Provider。MediaStore Content Provider采用特殊的规则:用于query() 或 managedQuery()来获取二进制数据的元信息(如照片的标题或者摄制日期)的URI,同样用于openInputStream()来获取二进制数据本身。
类似的,用于insert()函数来把元信息放入MediaStore记录的URI,也用于保存二进制数据本身的 openOutputStream()函数,下面的这段代码展示了这种规则: import android.provider.MediaStore.Images.Media; import android.content.ContentValues; import java.io.OutputStream; // Save the name and description of an image in a ContentValues map. ContentValues values = new ContentValues(3); values.put(Media.DISPLAY_NAME, "road_trip_1"); values.put(Media.DESCRIPTION, "Day 1, trip to Los Angeles"); values.put(Media.MIME_TYPE, "image/jpeg"); // Add a new record without the bitmap, but with the values just set. // insert() returns the URI of the new record. Uri uri =
更多精彩
赞助商链接