Вопрос 1
В описании они показывают только, что положить в манифест, и они упоминают использование «ChooserTargetService». Что делать, чтобы предоставить тексты и изображения?
blockquote>Начните с расширения
ChooserTargetService
. Вам нужно будет вернутьList
вChooserTarget
, и как вы создадите эти цели, полностью зависит от вас.public class YourChooserTargetService extends ChooserTargetService { @Override public List
onGetChooserTargets(ComponentName targetActivityName, IntentFilter matchedFilter) { final List targets = new ArrayList<>(); for (int i = 0; i < length; i++) { // The title of the target final String title = ... // The icon to represent the target final Icon icon = ... // Ranking score for this target between 0.0f and 1.0f final float score = ... // PendingIntent to fill in and send if the user chooses this target final PendingIntent action = ... targets.add(new ChooserTarget(title, icon, score, action)); } return targets; } } AndroidManifest
Теперь вам нужно будет объявите свой
ChooserTargetService
в своемAndroidManifest
и выполните две вещи:
- Привяжите
Service
с помощью разрешенияandroid.permission.BIND_CHOOSER_TARGET_SERVICE
- Включите
IntentFilter
сandroid.service.chooser.ChooserTargetService
actionНапример:
В
Activity
, который будет обрабатыватьIntent
, вам нужно будет добавитьmeta-data
android.service.chooser.chooser_target_service
. Например:
Здесь, главным образом, вы вызываете
Intent.createChooser
, а затем обрабатываете данные, если пользователь выбирает ваше приложение.final Intent target = new Intent(Intent.ACTION_SEND); target.setType("text/plain"); target.putExtra(Intent.EXTRA_TITLE, "Your title"); target.putExtra(Intent.EXTRA_TEXT, "Your text"); startActivity(Intent.createChooser(target, "ChooserTargetService Example"));
Результаты
[/g1]
Замечания
Оценка рейтинга для каждого
ChooserTarget
используется для сортировки целей, но используется, только если пользовательский интерфейс решает использовать его. СогласноChooserTarget.getScore
Пользовательский интерфейс, отображающий цель, может учитывать этот счет при сортировке и объединении целей из нескольких источников
blockquote>Кроме того, насколько это возможно Я знаю, эта функция пока еще не реализована в предварительном просмотре Android MNC.
ChooserActivity
содержитTODO
для него:TODO: Ведение сортировки по ранжированию
blockquote>При создании нового
android.graphics.drawable.Icon
вам нужно будет использовать один из инициализаторовstatic
.Icon.createWithBitmap(); Icon.createWithContentUri() Icon.createWithData() Icon.createWithFilePath() Icon.createWithResource()
Вопрос 2
Я хотел бы знать, как сделать обратное: как я могу выполнить запрос все эти элементы с прямым доступом (изображения, тексты и намерения) и показать их в настраиваемом диалоговом окне?
blockquote>Данные, предоставленные в
ChooserTargetService.onGetChooserTargets
, являются динамическими. Итак, нет прямого способа доступа к этим элементам, насколько я знаю.