1) Create an intention to perform a sharing or sending operation,
Intent email = new Intent(Intent.ACTION_SEND); email.putExtra(Intent.EXTRA_EMAIL, new String[]{" velmurugan@androidtoppers.com "}); email.putExtra(Intent.EXTRA_SUBJECT, "Hi"); email.putExtra(Intent.EXTRA_TEXT, "Hi,This is Test"); email.setType("text/plain");
2) Create an AlertDialog to install the application in alertdialog,
final Dialog dialog = new Dialog(Custom_chooser.this); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); WindowManager.LayoutParams WMLP = dialog.getWindow().getAttributes(); WMLP.gravity = Gravity.CENTER; dialog.getWindow().setAttributes(WMLP); dialog.getWindow().setBackgroundDrawable( new ColorDrawable(android.graphics.Color.TRANSPARENT)); dialog.setCanceledOnTouchOutside(true); dialog.setContentView(R.layout.about_dialog); dialog.show();
3) Get a list of applications related to a specific intention using ResolveInfo
List<ResolveInfo> launchables=pm.queryIntentActivities(email, 0); Collections.sort(launchables,newResolveInfo.DisplayNameComparator(pm));
4)) Set the list of applications to a custom listview.
adapter=new AppAdapter(pm, launchables); lv.setAdapter(adapter);
5) Finally, launch a specific application when you select an application from the list of applications in the list,
ResolveInfo launchable=adapter.getItem(position); ActivityInfo activity=launchable.activityInfo; ComponentName name=new ComponentName(activity.applicationInfo.packageName, activity.name); email.addCategory(Intent.CATEGORY_LAUNCHER); email.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); email.setComponent(name); startActivity(email);
For more details see the link: http://velmuruganandroidcoding.blogspot.in/2014/01/custom-chooser-android-in-example.html
user3921740
source share