Semplicemente desidera condividere una stringa di testo dinamica + l'URL dell'app. L'intento di condivisione nativo di Android è configurato correttamente e funziona perfettamente con Twitter, Gmail, ecc. Ma, come molti suppongono, non funziona con Facebook. Appare perché Facebook non accetterà il testo nel campo intent.EXTRA_TEXT
, solo un singolo URL.Separazione degli extra Intent di condivisione Android in base al metodo scelto per la condivisione
Bene, la mia domanda è: esiste un modo per separare gli extra di intenti di condivisione in base al metodo che scelgono di condividere? ad esempio, se condividono tramite Gmail o Twitter, utilizzare l'esistente String + URL
(l'opzione desiderata) EXTRA_TEXT
, ma se scelgono di condividere tramite Facebook, utilizzare solo un URL come EXTRA_TEXT
.
Non proprio volendo implementare l'SDK Android di Facebook per un compito così semplice che è integrato nativamente in Android.
Apprezza il tuo tempo e i tuoi consigli.
provato qualcosa di simile, ma non riesce, ovviamente, perché il suo solo controllare se esiste l'opzione di condivisione (quando la quota si apre, non dopo aver fatto clic un metodo di condivisione), non risponde quando scelgono un metodo.
String shareBody = "app string text " + act_txt + " more text! Get the app at http://www.appurl.com";
PackageManager pm = view.getContext().getPackageManager();
List<ResolveInfo> activityList = pm.queryIntentActivities(sharingIntent, 0);
for(final ResolveInfo app : activityList) {
Log.i(TAG, "app.actinfo.name: " + app.activityInfo.name);
//if((app.activityInfo.name).contains("facebook")) {
if("com.facebook.katana.ShareLinkActivity".equals(app.activityInfo.name)) {
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "http://www.appurl.com");
startActivity(Intent.createChooser(sharingIntent, "Share idea"));
break;
} else {
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "app name");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
startActivity(Intent.createChooser(sharingIntent, "Share"));
break;
}
}
perché rimuovere (0) da targetedShareIntents –