I don't know if it will help, but here is the source to the media provider which implements openFile:
http://android.git.kernel.org/?p=platform/packages/providers/MediaProvider.git;a=blob;f=src/com/android/providers/media/MediaProvider.java;h=7a72e239b0291e6b2ef986c4f675d58dfcda0732;hb=HEAD This allows for example sharing of pictures in Gallery to work. On Tue, Apr 26, 2011 at 2:04 AM, Paul <[email protected]> wrote: > On Apr 25, 8:55 pm, Dianne Hackborn <[email protected]> wrote: > > On Tue, Apr 26, 2011 at 12:46 AM, Paul <[email protected]> wrote: > > > > > share.setType(getString(R.string.note_default_mime_png)); > > > > There is no reason for this string to come from a resource; it is not > > > > something that gets localized, it is just a constant. > > > I am storing it in the XML as a way of storing the value... any other > > > standard conventions that are recommended? Store this as a static > > > constant in a static 'settings' class maybe? > > > > Just a static constant is fine. For example: > http://developer.android.com/reference/android/provider/MediaStore.Au... > > > > Ok, thanks > > > > > ACTION_SEND is not specified to return anything, so if you are > getting > > > any > > > > result at all you can't count on what you get back being useful. > > > I'm not counting on it returning anything useful, just having the > > > functionality indicate that it has finished is enough, I am then > > > setting a boolean field to true when it does, so that I know I that > > > the app has created a temporary copy of the file in the app's cache > > > directory. On exiting the program, if the field is true, I then empty > > > the cache directory. Obviously don't need to do this if I am no > > > longer copying the file if/when I get the method you suggest using > > > onFile() to work. > > > > This may not be a safe assumption. For example the send will often take > a > > while, so an implementation may very likely exit once the send has been > > confirmed and execute the operation in a background service. > > Well if I can get the openFile override working, I won't need to use > the cache directory and won't need this at all, so this shouldn't be > an issue moving forward. > > > > > > On that front, I have overriden the onFile() method in my content > > > provider, but it is not being triggered by the above code, any > > > suggestions? > > > @Override > > > public ParcelFileDescriptor openFile(Uri uri, String mode) { > > > Log.d(LOG_TAG, "openFile() called"); > > > return null; > > > } > > > > Have you published the content provider in your manifest and ensured you > > have set the authority correctly there in and the Intent's URI? Have you > > tried opening it yourself to see if it works? Is anything interested > > printed in the log? > > The content provider is published in my manifest: > > <provider > android:name=".provider.MyProvider" > android:authorities="package.name.here" > android:exported="true" /> > > I am using it for all DB activity in my app, so it's working... and > have tried the following, and no errors are generated: > > getContentResolver().openFileDescriptor(Uri.fromFile(shareFile), "r"); > > But... this does not trigger a call to openFile(). > > As I've switched over to passing the SEND the path directly to my file > in the app's file directory, versus the path to the one I was copying > to my cache directoy, the Uri for this is now: > > /data/data/package.name/files/1.png > > I get a permissions error now (as expected), but again, no call to > openFile(). > > > > > -- > > Dianne Hackborn > > Android framework engineer > > [email protected] > > > > Note: please don't send private questions to me, as I don't have time to > > provide private support, and so won't reply to such e-mails. All such > > questions should be posted on public forums, where I and others can see > and > > answer them. > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -- Dianne Hackborn Android framework engineer [email protected] Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails. All such questions should be posted on public forums, where I and others can see and answer them. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

