ИТАК независимо от ActionBarSherlock первого теста, чтобы увидеть, если ваше создание ваших намерений правильно, АБС использует тот же код, что и общий выборщик, чтобы посмотреть, будет ли приложение отображаться при выполнении этого кода.
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 ..."));
Все это приложения, которые обрабатывают простой текст будет отображаться, если Facebook, или все, что вы ждете не там, то эти приложения не поддерживают ACTION_SEND намерения для типа вы зарегистрировали (обычный/текст). (Facebook делает, но подробнее об этом через минуту)
У АБС есть образец для использования поставщика акций, но он пытается отправить фотографию, а не текстовое сообщение (обновление статуса), которую вы должны использовать, это что-то как этот
@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
}
а вот цель, которая будет использоваться для сопоставления приложения и перечислить их из образца
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;
}
но вы хотите быть
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"));
}
Это должно дать вам тот же список в АБС, что и в маленьком тестовом заглушке, который я показал с помощью выбора выше.
Теперь о плохих новостях. Приложение Facebook действительно не работает, оно откроет страницу обновления пользователей, но текст не будет заполнен. Это снова включено, снова поломка, но я попробовал это прошлой ночью, и это провалилось. Это сообщенная и принятая ошибка с приложением facebook. Вы можете публиковать фотографии, хотя, хотя подпись не может быть установлена, см. How many times will Facebook break/fix this?
ActionShareProvider перечисляет все приложения, которые могут обрабатывать тип намерений, которые вы создаете для провайдера. Если вы видите только 4, то это единственные конкретные приложения, которые принимают данные о типе намерения, который вы создали. Также почему вы хотите, чтобы общий доступ к фотографиям (категория или приложение, не обязательно), был указан для простого текста? – Idistic
Я пытаюсь использовать Провайдер действия действия в качестве опции для пользователей, чтобы поделиться ссылкой для загрузки моего приложения, и у меня есть приложения, такие как facebook и твиттер, и нет никаких вариантов для этих приложений. Картинка, на которой я хочу, похожа на другое приложение, которое я загрузил, и когда я выбираю «Просмотреть все ...» Есть около 10 различных приложений, в которых я могу поделиться. – GreekOphion