Aceptar lo que independientemente de ActionBarSherlock primera prueba para ver si su creación de su intento correctamente, ABS usa el mismo código que el selector genérico, así que vea si la aplicación que está buscando aparece cuando ejecuta este código.
Intent I= new Intent(Intent.ACTION_SEND);
I.setType("text/plain");
I.putExtra(android.content.Intent.EXTRA_TEXT, "My Test Text");
startActivity(Intent.createChooser(I,"Share using ..."));
Todo eso aplicación de que se encargan de texto plano se nos mostrarán, en caso de Facebook, o lo que usted está esperando no está allí entonces esos de aplicaciones no son compatibles con la intención ACTION_SEND para el tipo que se haya registrado (normal/texto) (Facebook lo hace, pero más sobre eso en un minuto)
ABS tiene un ejemplo para usar el proveedor de acciones, pero intenta enviar una foto, no un mensaje de texto (actualización de estado), la configuración que debe usar es algo como esto
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate your menu.
getSupportMenuInflater().inflate(R.menu.share_action_provider, menu);
// Set file with share history to the provider and set the share intent.
MenuItem item = menu.findItem(R.id.menu_item_share_action_provider_action_bar);
ShareActionProvider provider = (ShareActionProvider) item.getActionProvider();
provider.setShareHistoryFileName(ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);
// Note that you can set/change the intent any time,
// say when the user has selected an image.
provider.setShareIntent(createShareIntent());
return true
}
y aquí es la intención que se utilizará para que coincida con la aplicación de la lista y sacarlos de la muestra
private Intent createShareIntent() {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("image/plain");
Uri uri = Uri.fromFile(getFileStreamPath("shared.png"));
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
shareIntent.putExtra(Intent.EXTRA_TITLE, "This is an android icon");
return shareIntent;
}
pero usted quiere que sea
private Intent createShareIntent() {
Intent I= new Intent(Intent.ACTION_SEND);
I.setType("text/plain");
I.putExtra(android.content.Intent.EXTRA_SUBJECT, "TEST - Disregard");
I.putExtra(android.content.Intent.EXTRA_TEXT, Uri.parse("http://noplace.com"));
}
Esto debería darle la misma lista en ABS que en el pequeño talón de prueba que mostré con el selector anterior.
Ahora las malas noticias. La aplicación de Facebook realmente no funciona, mostrará la página de actualización de los usuarios, pero no completará el texto. Esto es una rotura de nuevo, una vez más, pero lo intenté anoche y estaba fallando. Es un error informado y aceptado con la aplicación de Facebook. Sin embargo, puede publicar fotografías, aunque no se puede establecer la leyenda, vea How many times will Facebook break/fix this?
ActionShareProvider enumera todas las aplicaciones que pueden manejar el tipo de intención que usted crea para el proveedor. Si solo está viendo 4, esas son las únicas aplicaciones específicas que aceptan datos del tipo de intención que creó. Además, ¿por qué quieres que se comparta una foto (categoría o aplicación, no estoy seguro) para texto sin formato? – Idistic
Estoy tratando de utilizar el Share Action Provider como una opción para que los usuarios compartan un enlace para descargar mi aplicación y tengo aplicaciones como Facebook y Twitter, y no hay opciones para esas aplicaciones. La imagen que tengo de lo que quiero que parezca es otra aplicación que he descargado y cuando selecciono "Ver todo ..." Hay alrededor de 10 aplicaciones diferentes en las que puedo compartir. – GreekOphion