This was my original question:
I want to be able to open a pdf file in my app using the android's built in pdf viewer app, but i dont know how to start other apps. I'm sure i have to call start activity, i just dont know how to identify the app im opening and how to pass the file to that specific app.
Anyone have a clue?
I just learned that the pdf viewer i have on my phone is actually made by HTC and that Adobe just barely released their android pdf viewer (which is great). So the new question is this: how do i verify that the user has installed adobe's viewer, and then how do i open the file in that app from my app?
AFAIK, Adobe has not documented any public
Intents
it wants developers to use.You can try an
ACTION_VIEW
Intent
with aUri
pointing to the file (either on the SD card orMODE_WORLD_READABLE
in your app-local file store) and a MIME type of"application/pdf"
.Although this is a pretty old topic, here is a solution for opening a PDF that is in the asset/ folder with an external PDF reader app. It uses a custom content provider: https://github.com/commonsguy/cwac-provider
Using this you can define any file to be provided from the assets/ or res/raw/ folder.
Try it! Best and easiest solution I found so far.
Add FLAG_GRANT_READ_URI_PERMISSION
also add provider_paths.xml at res -> xml folder and need to add below code at manifests
You can programmatically determine whether a suitable application exists on the user's device, without catching exceptions.
In addition to the ones marked as answer you would need these permissions in the manifest.xml
**
**