Sto cercando di acquisire il risultato di Intent.createChooser
per sapere quale app selezionata per la condivisione.Scarica l'app scelta da Intent.createChooser
So che ci sono stati un sacco di commenti su questo:
- How to know which application the user chose when using an intent chooser?
- https://stackoverflow.com/questions/6137592/how-to-know-the-action-choosed-in-a-intent-createchooser?rq=1
- How to get the user selection from startActivityForResult(Intent.createChooser(fileIntent, "Open file using..."), APP_PICKED);?
- Capturing and intercepting ACTION_SEND intents on Android
ma questi posti sono un po 'vecchi, e Spero che possano esserci nuovi sviluppi.
Sto cercando di implementare un share action senza che sia presente nel menu. La soluzione più vicina a ciò che voglio è fornita da ClickClickClack che suggerisce di implementare un selettore di app personalizzato, ma sembra pesante. Inoltre, sembra che potrebbero esserci alcuni ganci Android per ottenere l'app scelta, ad esempio lo ActivityChooserModel.OnChooseActivityListener.
Ho il seguente codice nel mio MainActivity, ma il metodo onShareTargetSelected
non viene mai chiamato.
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, shareMessage());
sendIntent.setType("text/plain");
Intent intent = Intent.createChooser(sendIntent, getResources().getText(R.string.share_prompt));
ShareActionProvider sap = new ShareActionProvider(this);
sap.setShareIntent(sendIntent);
sap.setOnShareTargetSelectedListener(new ShareActionProvider.OnShareTargetSelectedListener() {
@Override
public boolean onShareTargetSelected(ShareActionProvider source, Intent intent) {
System.out.println("Success!!");
return false;
}
});
startActivityForResult(intent, 1);
OK. Questo è deludente, e non è chiaro dai documenti di ShareActionProvider. – dsg
Ho finito con questa soluzione: http://stackoverflow.com/a/18980872/244526 – dsg