在Android中分享到Facebook,Twitter和电子邮件的URL?

有没有类似于Android的getsharekit.com? 它允许分享URL到社交网站。 有什么类似的,或者我需要单独编写Facebook,Twitter和电子邮件?

Solutions Collecting From Web of "在Android中分享到Facebook,Twitter和电子邮件的URL?"

我不知道这是你的意思,但你可以使用Android内置的共享菜单…

您可以使用Intents分享到Facebook,Twitter,Gmail等的URL(只要应用程序安装在您的设备上):

 Intent i = new Intent(Intent.ACTION_SEND); i.setType("text/plain"); i.putExtra(Intent.EXTRA_SUBJECT, "Sharing URL"); i.putExtra(Intent.EXTRA_TEXT, "http://www.url.com"); startActivity(Intent.createChooser(i, "Share URL")); 

如果您要共享的应用程序未安装在用户的设备上,例如Facebook,则必须使用Facebook SDK。

如果您希望您的活动也处理从其他应用程序共享的文本数据,则可以将其添加到AndroidManifest.xml中:

 <activity android:name=".ShareLink"> <intent-filter> <action android:name="android.intent.action.SEND" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="text/plain" /> </intent-filter> </activity> 

希望这可以帮助!

对于Facebook你可以使用`

https://m.facebook.com/sharer.php?u=website_url&t=titleOfThePost

网站的url可能是任何东西引用任何资源,例如,如果你想从互联网上得到一个图像,并把它在你的墙上。

希望这会有所帮助

你可以试试这个…

 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, "<source url>"); startActivity(Intent.createChooser(share, "Share text to...")); } 

这里是我的实现,你可以添加更多的应用程序,只要你想添加包名称。 这个代码也根据他们的名字对应用程序进行sorting。

  List<Intent> targetShareIntents = new ArrayList<Intent>(); Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); shareIntent.setType("text/plain"); PackageManager pm = getActivity().getPackageManager(); List<ResolveInfo> resInfos = pm.queryIntentActivities(shareIntent, 0); if (!resInfos.isEmpty()) { System.out.println("Have package"); for (ResolveInfo resInfo : resInfos) { String packageName = resInfo.activityInfo.packageName; Log.i("Package Name", packageName); if (packageName.contains("com.twitter.android") || packageName.contains("com.facebook.katana") || packageName.contains("com.whatsapp") || packageName.contains("com.google.android.apps.plus") || packageName.contains("com.google.android.talk") || packageName.contains("com.slack") || packageName.contains("com.google.android.gm") || packageName.contains("com.facebook.orca") || packageName.contains("com.yahoo.mobile") || packageName.contains("com.skype.raider") || packageName.contains("com.android.mms")|| packageName.contains("com.linkedin.android") || packageName.contains("com.google.android.apps.messaging")) { Intent intent = new Intent(); intent.setComponent(new ComponentName(packageName, resInfo.activityInfo.name)); intent.putExtra("AppName", resInfo.loadLabel(pm).toString()); intent.setAction(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, "https://website.com/"); intent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.share_text)); intent.setPackage(packageName); targetShareIntents.add(intent); } } if (!targetShareIntents.isEmpty()) { Collections.sort(targetShareIntents, new Comparator<Intent>() { @Override public int compare(Intent o1, Intent o2) { return o1.getStringExtra("AppName").compareTo(o2.getStringExtra("AppName")); } }); Intent chooserIntent = Intent.createChooser(targetShareIntents.remove(0), "Select app to share"); chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetShareIntents.toArray(new Parcelable[]{})); startActivity(chooserIntent); } else { Toast.makeText(getActivity(), "No app to share.", Toast.LENGTH_LONG).show(); } } 

您也可以使用支持库中的ShareCompat类。

 ShareCompat.IntentBuilder.from(activity) .setType("text/plain") .setChooserTitle("Share URL") .setText("http://www.url.com") .startChooser(); 

https://developer.android.com/reference/android/support/v4/app/ShareCompat.html

对我来说,这工作得很好:

 startActivity(Intent.createChooser(new Intent(Intent.ACTION_SEND, Uri.parse("http://...")),"Share URL"));// share url is on your own