I spoke too soon. It works ONCE and then it 12-04 22:38:05.330: WARN/System.err(763): java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed
This is the routine in the Content Provider: @Override public AssetFileDescriptor openAssetFile(Uri uri, String mode) { String fileName = "asset_text.txt"; AssetManager assetManager = this.getContext().getAssets(); AssetFileDescriptor afd = null ; try { afd = assetManager.openFd(fileName); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return afd; } What I don't understand is why did it work once and no more? The file is still there, intact. Does it get compressed on the device? How can I read it reliably? Thanks. On Dec 4, 3:02 pm, Saied <saie...@gmail.com> wrote: > wow. that was dumb of me!! Thanks for pointing it out. > > so I changed it to: > > @Override > public AssetFileDescriptor openAssetFile(Uri uri, String mode) { > String fileName = "asset_text_orig.txt"; // hardcoding > the > file name for now > > AssetManager assetManager = getAssets(); > AssetFileDescriptor afd = assetManager.openFd(fileName); > return afd; > } > > and it WORKS!! > > Thank you VERY much for your help and indulgence! > > On Dec 4, 2:09 pm, skink <psk...@gmail.com> wrote: > > > > > > > > > Saied wrote: > > > Thanks again! > > > > Actually, this seems to be working on the ContentProvider now: > > > > public AssetFileDescriptor openAssetFile(Uri uri, String mode) { > > > String fileName = "asset_text_orig.txt"; > > > URI uri1 = URI.create(fileName); > > > AssetFileDescriptor parcel = this.openAssetFile(uri1, mode); > > > // > > > for testing purposes, I hardwired this to uri1 > > > > "asset_text_orig.txt"; > > > return parcel; > > > } > > > it will not work since you call openAssetFile recursively and you will > > get stack overflow error > > > > Now, how do I read this from an app? > > > > String packageName = "com.example.text.cp"; > > > FileInputStream fstream = new FileInputStream("content://" + > > > packageName); // there is only one kind of file exposed > > > DataInputStream in = new DataInputStream(fstream); > > > BufferedReader br = new BufferedReader(new InputStreamReader(in)); > > > String strLine = br.readLine(); > > > > ... > > > > Or should I include openAssetFile(Uri uri, String mode) at the end of > > > the uri goint to FileInputStream? > > > > Thank you very much for your help so far. > > > seehttp://developer.android.com/guide/topics/providers/content-providers... > > > pskink -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en