Last active
July 23, 2021 10:07
-
-
Save Alezhka/03ae4cc7bd23c0505517 to your computer and use it in GitHub Desktop.
Open file with default application using Intents
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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