Ali*_*tad 7 sqlite android file android-contentprovider
我一直在与我的Android应用中的问题作斗争.我一直在阅读Android文档,我在Android上的书(Andriod Pro 2)并且几乎看了我可以得到的每一个例子但是无法弄清楚如何实现对文件存储文件(图像,二进制数据)在内容提供程序公开的Sqlite表中.
这是我做的(几乎类似于记事本示例应用程序):
ContentProvider在我的提供商中实施.这一切都适用于CRUD操作.在内部它使用实现SQLiteOpenHelper(非常标准的东西)_data列文本类型这完全符合Android Pro 2的书.这是代码部分的片段:
Uri uri = getContentResolver().insert(MyAuthority.CONTENT_URI, contentValues);
OutputStream s = getContentResolver().openOutputStream(uri);
Run Code Online (Sandbox Code Playgroud)
但我得到以下错误:
11-29 01:07:30.717:WARN/System.err(1490):java.io.FileNotFoundException:提供商在内容中不支持任何文件:// myproviderauthority/podcasts/1
我需要做什么?我阅读了Android 文档,但它们非常模糊:
向客户端公开数据的字段实际上应包含内容:URI字符串.
1)字段类型需要是TEXT还是有特殊的content: URI string数据类型?
2)在插入时我没有URI.我需要在插入后获取URI,然后更新记录中的该字段吗?
该记录还应该有另一个名为"_data"的字段,该字段列出设备上该文件的确切文件路径.此字段不是由客户端读取,而是由ContentResolver读取.
3)那么该领域的类型应该是什么?文字 - 我假设?
客户端将在面向用户的字段上调用ContentResolver.openInputStream(),该字段包含项目的URI.
4)这完全是垃圾!我ContentResolver.openInputStream()该如何打电话?你只能在记录上调用它并传递Uri.
谢谢你的时间,我希望你能帮助我.我也回顾了这些SO问题(这个和这个),但他们没有帮助.
顺便说一句,我正在构建API(版本1.6)的第4级.
| 归档时间: |
|
| 查看次数: |
4149 次 |
| 最近记录: |