import java.io.File; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.view.View; import android.app.Activity; import android.content.Intent; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); View.OnClickListener handler = new View.OnClickListener() { public void onClick(View v) { switch (v.getId()) { case R.id.buttonShareTextUrl: shareTextUrl(); break; case R.id.buttonShareImage: shareImage(); break; } } }; findViewById(R.id.buttonShareTextUrl).setOnClickListener(handler); findViewById(R.id.buttonShareImage).setOnClickListener(handler); } private void shareTextUrl() { Intent share = new Intent(android.content.Intent.ACTION_SEND); share.setType("text/plain"); share.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); share.putExtra(Intent.EXTRA_SUBJECT, "Title Of The Post"); share.putExtra(Intent.EXTRA_TEXT, "http://dhruvvaishnav.blogspot.in"); startActivity(Intent.createChooser(share, "Share text to...")); } /* * Share any Image. */ private void shareImage() { Intent share = new Intent(Intent.ACTION_SEND); // If you want to share a png image only, you can do: // setType("image/png"); OR for jpeg: setType("image/jpeg"); share.setType("image/*"); // Make sure you put example png image named myImage.png in your // directory String imagePath = Environment.getExternalStorageDirectory() + "/myImage.png"; File imageFileToShare = new File(imagePath); Uri uri = Uri.fromFile(imageFileToShare); share.putExtra(Intent.EXTRA_STREAM, uri); startActivity(Intent.createChooser(share, "Share image to...")); } }Note: When you use the setType() method, you are enabling Android to filter what apps can share your content. For example, you are sharing a text or URL, the appropriate apps to be shown can be Facebook, Messaging or Email. If you are sharing an image, proper apps can be Instagram, or Picasa.
For More information follow this link : http://developer.android.com/training/sharing/send.html
Customizing the Intent extras depending on the target sharer:
private void shareItem(String title, String link) {
// Standard message to send
String msg = title + " " + link;
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("text/plain");
List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(share, 0);
if (!resInfo.isEmpty()) {
List<Intent> targetedShareIntents = new ArrayList<Intent>();
Intent targetedShareIntent = null;
for (ResolveInfo resolveInfo : resInfo) {
String packageName = resolveInfo.activityInfo.packageName;
targetedShareIntent = new Intent(android.content.Intent.ACTION_SEND);
targetedShareIntent.setType("text/plain");
// Find twitter: com.twitter.android...
if ("com.twitter.android".equals(packageName)) {
targetedShareIntent.putExtra(android.content.Intent.EXTRA_TEXT, msg);
} else if ("com.google.android.gm".equals(packageName)) {
targetedShareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, title);
targetedShareIntent.putExtra(android.content.Intent.EXTRA_TEXT, Uri.encode(title + "\r\n" + link));
} else if ("com.android.email".equals(packageName)) {
targetedShareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, title);
targetedShareIntent.putExtra(android.content.Intent.EXTRA_TEXT, Uri.encode(title + "\n" + link));
} else {
// Rest of Apps
targetedShareIntent.putExtra( android.content.Intent.EXTRA_TEXT, msg);
}
targetedShareIntent.setPackage(packageName);
targetedShareIntents.add(targetedShareIntent);
}
Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), getResources().getString(R.string.share));
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[] {}));
startActivityForResult(chooserIntent, 0);
}
}
This information you provided in the blog that was really unique I love it!!, Thanks for sharing such a great blog..Keep posting..
ReplyDeleteAndriod Training
This information you provided in the blog that was really unique I love it!!, Thanks for sharing such a great blog..Keep posting..
ReplyDeleteAndriod Course in Chennai
i want to post both image and text in post
ReplyDelete