package github.nisrulz.intents; import android.Manifest; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Environment; import android.provider.MediaStore; import android.support.v4.app.ActivityCompat; import java.io.File; public class ImplicitIntents { void openAppPageInPlaystore(Context context) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + context.getPackageName())); context.startActivity(intent); } void openUrlInBrowser(Context context, String url) { Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); context.startActivity(browserIntent); } void sendEmail(Context context, String[] sendTo, String subject, String body) { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("plain/text"); intent.putExtra(Intent.EXTRA_EMAIL, sendTo); intent.putExtra(Intent.EXTRA_SUBJECT, subject); intent.putExtra(Intent.EXTRA_TEXT, body); context.startActivity(Intent.createChooser(intent, "")); } void call(Context context, String number) { Intent callIntent = new Intent(Intent.ACTION_CALL); callIntent.setData(Uri.parse("tel:" + number)); if (ActivityCompat.checkSelfPermission(context, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { // TODO: Consider calling // ActivityCompat#requestPermissions // here to request the missing permissions, and then overriding // public void onRequestPermissionsResult(int requestCode, String[] permissions, // int[] grantResults) // to handle the case where the user grants the permission. See the documentation // for ActivityCompat#requestPermissions for more details. return; } context.startActivity(callIntent); } void sendSMS(Context context, String sendToNumber, String message) { Uri smsUri = Uri.parse("tel:" + sendToNumber); Intent intent = new Intent(Intent.ACTION_VIEW, smsUri); intent.putExtra("address", sendToNumber); intent.putExtra("sms_body", message); intent.setType("vnd.android-dir/mms-sms"); context.startActivity(intent); } void showLocationInMap(Context context, String latitude, String longitude, String zoomLevel) { Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); String data = String.format("geo:%s,%s", latitude, longitude); if (zoomLevel != null) { data = String.format("%s?z=%s", data, zoomLevel); } intent.setData(Uri.parse(data)); context.startActivity(intent); } void takeAPic(Context context, String dir, String fileName) { Uri uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory().toString() + "/" + dir, fileName)); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); context.startActivity(intent); } void shareData(Context context, String dir, String fileName, String type, String data) { Intent sharingIntent = new Intent(Intent.ACTION_SEND); sharingIntent.setType(type); Uri uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory().toString() + "/" + dir, fileName)); sharingIntent.putExtra(Intent.EXTRA_STREAM, uri.toString()); sharingIntent.putExtra("data", data); context.startActivity(Intent.createChooser(sharingIntent, "Share using")); } }