Skip to content

Instantly share code, notes, and snippets.

@Alezhka
Last active July 23, 2021 10:07
Show Gist options
  • Save Alezhka/03ae4cc7bd23c0505517 to your computer and use it in GitHub Desktop.
Save Alezhka/03ae4cc7bd23c0505517 to your computer and use it in GitHub Desktop.
Open file with default application using Intents
/**
* Send email.
*
* @param context the context
* @param email the email
* @param subject the subject
* @param text the text
*/
public void sendEmail(Context context, String email, String subject,
String text) {
final Intent emailIntent = new Intent(
android.content.Intent.ACTION_SEND);
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
new String[] { email });
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, text);
context.startActivity(Intent.createChooser(emailIntent, "Send mail..."));
}
/**
* Dial.
*
* @param context the context
* @param number the number
*/
public void dial(Context context, String number) {
Uri dialUri = Uri.parse("tel:" + number);
Intent dialIntent = new Intent(Intent.ACTION_DIAL, dialUri);
context.startActivity(dialIntent);
}
/**
* Call.
*
* @param context the context
* @param number the number
*/
public void call(Context context, String number) {
Uri callUri = Uri.parse("tel:" + number);
Intent callIntent = new Intent(Intent.ACTION_CALL, callUri);
context.startActivity(callIntent);
}
/**
* Open file
*
* @param uri path to file
*/
public void openFile(Uri uri) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
if (url.toString().contains(".doc") || url.toString().contains(".docx")) {
// Word document
intent.setDataAndType(uri, "application/msword");
} else if (url.toString().contains(".pdf")) {
// PDF file
intent.setDataAndType(uri, "application/pdf");
} else if (url.toString().contains(".ppt") || url.toString().contains(".pptx")) {
// Powerpoint file
intent.setDataAndType(uri, "application/vnd.ms-powerpoint");
} else if (url.toString().contains(".xls") || url.toString().contains(".xlsx")) {
// Excel file
intent.setDataAndType(uri, "application/vnd.ms-excel");
} else if (url.toString().contains(".zip") || url.toString().contains(".rar")) {
// WAV audio file
intent.setDataAndType(uri, "application/x-wav");
} else if (url.toString().contains(".rtf")) {
// RTF file
intent.setDataAndType(uri, "application/rtf");
} else if (url.toString().contains(".wav") || url.toString().contains(".mp3")) {
// WAV audio file
intent.setDataAndType(uri, "audio/x-wav");
} else if (url.toString().contains(".gif")) {
// GIF file
intent.setDataAndType(uri, "image/gif");
} else if (url.toString().contains(".jpg") || url.toString().contains(".jpeg") || url.toString().contains(".png")) {
// JPG file
intent.setDataAndType(uri, "image/jpeg");
} else if (url.toString().contains(".txt")) {
// Text file
intent.setDataAndType(uri, "text/plain");
} else if (url.toString().contains(".3gp") || url.toString().contains(".mpg") || url.toString().contains(".mpeg") || url.toString().contains(".mpe") || url.toString().contains(".mp4") || url.toString().contains(".avi")) {
// Video files
intent.setDataAndType(uri, "video/*");
} else {
// Other files
intent.setDataAndType(uri, "*/*");
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment