android - vincular - tweets en facebook
¿Compartir URL en Facebook, Twitter y correo electrónico en Android? (6)
¿Hay algo similar a getsharekit.com para Android? Permite compartir URL a sitios de redes sociales. ¿Hay algo similar a esto o necesito codificar por separado para Facebook, Twitter y correo electrónico?
Aquí está mi implementación, puedes agregar más aplicaciones si lo deseas con solo agregar nombres de paquetes. Este código también ordena las aplicaciones de acuerdo con sus nombres.
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();
}
}
No sé si eso es lo que quieres decir, pero puedes usar el menú para compartir integrado de Android ...
Puede compartir una URL a Facebook, Twitter, Gmail y más (siempre que las aplicaciones estén instaladas en su dispositivo) usando Intentos:
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"));
Si la aplicación que desea compartir no está instalada en el dispositivo del usuario, por ejemplo, Facebook, tendrá que usar Facebook SDK.
Si desea que su Actividad también maneje datos de texto compartidos de otras aplicaciones, puede agregar esto a su 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>
¡Espero que esto ayude!
Para Facebook puedes usar `
https://m.facebook.com/sharer.php?u=website_url&t=titleOfThePost
la URL del sitio web podría ser cualquier referencia a cualquier recurso, por ejemplo, si desea obtener una imagen de Internet y publicarla en su muro.
Espero que esto ayude
Para mí, esto funciona bien:
startActivity(Intent.createChooser(new Intent(Intent.ACTION_SEND,
Uri.parse("http://...")),"Share URL"));// share url is on your own
Puedes probar esto ...
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..."));
}
También puede usar la clase ShareCompat desde la biblioteca de soporte.
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