I do not know what you mean by the "general way", but I think you should set the type to intent.setType("image/*"); .
EDIT:
How you send data with intent depends on the availability of applications that filter your action. Applications that handle ACTION_SEND may not process ACTION_SEND_MULTIPLE. By clicking "Share on HTC Gallery", you will get a list of applications that process the image, one or more. If you select Mail, you can select multiple images. But if you choose Facebook or Peep, you can only select one image. This is my simple solution if you want to make feedback with HTC Gallery, that is: the user first selects the image (s), then you show him all compatible applications, based on how much he chose.
// assuming uris is a list of Uri Intent intent = null; if (uris.size > 1){ intent = new Intent(Intent.ACTION_SEND_MULTIPLE); intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); } else if (uris.size() == 1) { intent = new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_STREAM, uris.get(0));} intent.setType("image/*"); intent.putExtra(Intent.EXTRA_TEXT, "Some message"); startActivity(Intent.createChooser(intent,"compatible apps:"));
source share