Add Intent for a specific extension? - android

I want to set a particular extension for intent in the android studio.
I have tried intent.setType("*\\.pdf")"

you have tried path to file (any path with pdf extension), thats not a mimeType which you should set in here. try to set proper value intent.setType("application/pdf");
Intent intentPdf = new Intent(Intent.ACTION_GET_CONTENT);
intentPdf.setType("application/pdf");
intentPdf.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(Intent.createChooser(intentPdf, "Pick PDF"), CUSTOM_CODE);

Related

Create File Explorer for PDF, Text and Image in Android

I am new in android development and I just want to know how to do a customized file explorer that will only display pdf, text and image files.
I tried this example but I dont know how to filter the files that can be displayed :(
Android File Explore
Is there a way to display and select only the files mentioned above?
Take a look at #Smitted answer.
Create the intent:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
You can set the MIME types for the intent:
intent.SetType("application/pdf");
and add additional MIME types:
String[] mimetypes = {"image/*", "text/*"};
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes);
and start the activity:
StartActivityForResult(intent, FIND_FILE_REQUEST_CODE);
You can filter the files in the accept() of new FilenameFilter().

How can I ask the user to select the app he wants to use to open a file?

I'm trying to make my own file manager for android.
I am wondering how I could asks the user to choose the application he wants to use open a file. like when you are opening a .doc file and you have a bunch of .doc file readers. How would I be able to retrieve the list of apps that the user can use to read/open a file?
Try this code
Uri uri = Uri.parse("Your file name: //"+file.getAbsolutePath());
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_VIEW);
String type = "application/msword";
intent.setDataAndType(Uri.fromFile(file), type);
startActivity(intent);
You should use implicit intent for your purpose. Below is the sample code for giving options to play a video file
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("https://youtu.be/jxoG_Y6dvU8"), "video/*");
startActivity(Intent.createChooser(intent, "Complete action using"));
I hope it will help you out. For further details you may refer android official documentation as mentioned in below link
https://developer.android.com/training/basics/intents/sending.html#AppChooser
I think you can try this
Intent in= new Intent(Intent.ACTION_MAIN);
in.setComponent(new ComponentName("com.package.address","com.package.address.MainActivity"));
startActivity(in);

picking PDF files using Intent in android

Hey I am new in android I have a requirement to choose pdf files using Intent. I am using this code to set type of MIME.
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("pdf/*")
But it's not working the way I want, please provide me any suggestions or can I make some changes to the existing code.
Do this intent.setType("application/pdf");
Try Below Code:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setType("application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);

How to open the My Files folder in Android Programatically (using Intent)?

I am using the below code which opens up the Gallery, Music Player, Dropbox and Contacts, i want the My Files folder to get open programatically, please let me know if there are any specific intent parameters i need to pass to get the File Manager open.
if it is not possible through intent then please give me a snippet or an hint to open the My Files folder programatically.
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
Intent i = Intent.createChooser(intent, "View Default File Manager");
startActivityForResult(i, CHOOSE_FILE_REQUESTCODE);
Thanks.
You can use this code to file the files.
int PICKFILE_RESULT_CODE=1;
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("file/*");
startActivityForResult(intent,PICKFILE_RESULT_CODE);
this will help you to browse the files from your storage.
Its best that you include a library in your project which handles this scenario.
This worked for me:
This library shows the list of third-party apps. It also has its own file browser for selecting files.
Bad thing is, most Android distributions may or may not ship with a file manager, and even so, may be not with the one which handles CHOOSE_FILE_REQUESTCODE.
So, you are left to create your own file picker activity. Luckily there are many ready made ones available:
http://code.google.com/p/android-filechooser/
https://developers.inkfilepicker.com/docs/android/
If you want to open samsung My Files application try this below code.
Intent intent = new Intent("com.sec.android.app.myfiles.PICK_DATA");
intent.putExtra("CONTENT_TYPE", "*/*");
startActivityForResult(intent, CHOOSE_FILE_REQUESTCODE);
You have to specifically mention the package name of the explorer application. Please find the example below to open a specific folder in ES Explorer.
public void openfolderInexplorer(String path){
Intent intent = this.getPackageManager().getLaunchIntentForPackage("com.estrongs.android.pop");
if (intent != null) {
// If the application is avilable
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.parse(path);
intent.setDataAndType(uri, "resource/folder");
this.startActivity(intent);
} else {
// Play store to install app
intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setData(Uri.parse("market://details?id=" +
"com.estrongs.android.pop"));
this.startActivity(intent);
}
try this below code. if any file manager available , then it will pop up in a form of menu to choose appropriate for the user.
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("file/*");
startActivityForResult(intent, CHOOSE_FILE_REQUESTCODE);

Display Applications that can handle a particular filetype

So, I have the file path of a file in an application & I want to give the user the ability to select from all applications on the phone that can handle/open that file type and then open the file in that applicaton. How do I do this? - performs a similar function to a file manager.
First you have to pick the type of Intent you want. This code picks applications that can send the data through SMS/email/etc utilizing ACTION_SEND.
Intent intent = new Intent(Intent.ACTION_SEND);
Next you need to use putExtra to get the file/message to the Intent.
Uri uri = Uri.fromFile(new File(myFile));
intent.putExtra(Intent.EXTRA_STREAM, uri);
Finally you create a chooser.
Intent chooser = Intent.createChooser(intent, "A Custom Message");
startActivity(chooser);

Categories

Resources