Что такое Android Intent или триггер, отвечающий за отображение системного представления по умолчанию (выбор / выбор)
[Версия / редактирование #4] МЕНЮ ANDROID SHARE / ПРОГРАММА FOSS
В настоящее время я подробно определяю свои требования и нуждаюсь в некотором руководстве...
Извините за мой многословный вопрос, это не повторение на сайте SO (насколько мне известно.) Дайте мне знать, чего не хватает в моем вопросе, и я добавлю все, что вам нужно. Я перечислю мои связанные вопросы и добавлю контекст и детали ниже.
Я спрашиваю конкретно о том, как работают внутренние устройства Android OS/Framework INTENT, когда использование намерений приводит к отображению выбора системного ресурса. Я не понимаю Как заставить систему выбирать между моим представлением общего ресурса и существующим по умолчанию? (т. е. возможно использование обходного пути (en/dis)).
Я НЕ спрашиваю об общих меню и кнопках, которые могут быть включены в мое приложение. Эта тема широко освещается в SO, и у меня есть отличный материал от SO.
Меня интересуют все связанные примеры кода или ссылки, включая нативный (jni) код на C++. Ядро, конечно, вне моего понимания, но мне интересно, где оно связано. У меня есть базовое понимание контекстов, процессов виртуальных машин, межпроцессного взаимодействия, сервисов и разрешений. У меня очень минимальное понимание структуры хранилища исходного кода Android.
Вопросы:
1) Я предполагаю, что есть (внутреннее) намерение и категория, которые вызывают отображение параметров "поделиться" (т. Е. Когда они неявные). Я видел приглашение выбрать в системе обработчик общего ресурса по умолчанию, например (после установки Anymade.) Может кто-нибудь сказать мне, что это за намерение + категория или объяснить, как она обрабатывается, если я ошибаюсь?
Смежные вопросы:
2) Вызывает ли вызов класса инструментария execStartActivity отображение представления общего ресурса из-за того, что список приложений Intent изменился, у него нет значения по умолчанию или доступно несколько (неразрешенных) вариантов выбора?
3) По поводу использования поиска с использованием AD (Android SDK Search) и?ARN? в браузере: какие поисковые термины дадут мои лучшие результаты в моем желании покопаться в этой области и раскрыть внутреннюю часть ОС (какие термины для кода / классов / методов / и т. д.?)
4) Я работаю здесь с системой Windows и у меня не будет двойной загрузки по крайней мере месяц. Я собираюсь загрузить загрузить репозиторий AOSP. Я не могу сделать сборку, поэтому любые советы, касающиеся IDE/tools/browser-addons, были бы полезны, так как отслеживание кода внутри классов.
Если этот 4-й вопрос нарушает условия обслуживания, я могу удалить его, но в частном порядке свяжусь с вашими рекомендациями по адресу: david [underscore] horsman [at] hotmail [dot] com.
5) Как называется класс, отображающий представление выбора общего ресурса? Могу ли я получить некоторые ссылки на Google Source и AOSP, связанные с этим?
СЛИШКОМ долго не читал вещи:
ССЫЛКИ ПО ТЕМЕ:
- Для общего обсуждения намерений и манифестов, касающихся LAUNCHER и HOME, это было хорошо:
Манифест для домашнего намерения и намерения запуска
- Если вы заинтересованы в широком списке намерений, это было действительно хорошо:
Есть ли способ перечислить все Intents и все процессы, связанные с ними?
Выражение grep позволяет отлавливать только те строки, которые заканчиваются намерением (отрываться). Может не хватать всех, но это хорошее начало.
SIDESYNC.action.CTRL_PRESSED_STATE_EVENT: SIDESYNC.action.EXIST_TEXT_BEFORE_CURSOR_STATE_EVENT: SIDESYNC.action.INPUT_TEXT_EVENT (IT'S A REALLY LONG LIST...)
- Существует способ обхода использования намерений, который запускает средство выбора действий по умолчанию:
потерянная ссылка:
цитата:
OpenIntents проделал определенную работу в области расширения Intents: здесь
Более продвинутое программирование намерений для конкретных приложений (социальные сети): как отфильтровать определенные приложения для намерения ACTION_SEND (и задать различный текст для каждого приложения)
Основное внимание в моем проекте сосредоточено на пользовательском интерфейсе общего доступа, который заменяет систему выбора общих ресурсов по умолчанию. Базовое кодирование (но не перехватчики Intent) описано здесь: Настройка пользовательского интерфейса Share Intent
Текущее состояние и информация, переписывание вопросов и заметок:
1) Какая категория intent+ запускает системное представление по умолчанию? Все, вероятно, знакомы с тем, как включить действия, намерения, категории и фильтры в манифест. Я обнаружил, что эти (несомненно знакомые) действия и категории связаны с моей темой:
- Действие: ГЛАВНАЯ
- Действие: ОТПРАВИТЬ
- Действие: SENDTO
- Категория: LAUNCHER
- Категория: ПО УМОЛЧАНИЮ
- MimeType: /
2) Как в результате вызова класса инструментария execStartActivity отображается представление общего ресурса по умолчанию? Инструментарий вызова. Существует четыре варианта execStartActivity. IE:
public void execStartActivitiesAsUser(Context who, IBinder contextThread,
IBinder token, Activity target, Intent[] intents, Bundle options,
int userId)
3) Мне нравится команда chrome omnibox AD и другие команды (LOST Android Native / C++), которые можно найти здесь:
Ссылка Chrome AD Ominbox: здесь
Ссылка команды Chrome Android Native Runtime Omnibox: (ПОТЕРЯЛ. Все еще ищите...)
4) приветствуются советы, касающиеся IDE/tools/browser-addons... Текущий / временный стек разработки используется:
- IDE: Android Studio, Eclipse EE, Visual Studio, VS Code, SCiTe.
- Языки и структура: JavaScript, NodeJS, React, GraphQL, Java, Rust, C#, .Net.
- Другое: SQlite3, MongoDB, JSON, HTML5, CSS, OWL, REST, варианты Bootstrap, различные...
- ФОКУС: FOSS оценки. Github. Whonix. Android. Социальные медиа. NN.
5) Я не совсем понимаю, как называется класс, отображающий представление выбора общего ресурса? * Я вижу, что Intents прошел несколько ревизий под Android, и часть кода можно найти в библиотеках поддержки V4 и V7. * Кажется, по крайней мере три сгенерированных представления (например, у класса Activity Helper есть одно) (LINK NEEDED) * Прямо сейчас я подозреваю, что код общего доступа будет найден на уровне фреймворка C++. * То же самое относится к обнаружению и обработке выбора действий по умолчанию. * Пожалуйста, посмотрите приложение Android AnyMade как отличный пример улучшения пользовательского интерфейса. Престижность.
Обзор проекта и контекст вопроса:
Этот проект будет разветвлять буфер обмена. Найдено здесь: https://github.com/heruoxin/Clip-Stack
Я в настоящее время нахожусь на стадии / заинтересованной стороны / стадии разработки проекта. Он мотивирован внешними требованиями, связанными с еще одним заданием.
Следующие изменения будут сделаны (КАК ДАЛЕКО, КАК Я ЗНАЮ)
I) Любые типы MIME, связанные с разметкой, будут добавлены к существующей обработке типов элементов буфера обмена.
II) Будет добавлен поставщик контента, который будет обращаться к истории буфера обмена в качестве источника данных. База данных SQLite3 будет помещена в общую папку.
III) Будет создано отдельное сопутствующее приложение (ТЕМА ЭТОГО ВОПРОСА), которое заменит и / или расширит обработчик общего ресурса. Это будет включать в себя глубокий обмен.
IV) Без сомнения, появятся другие проблемы и улучшения. Основное внимание уделяется эффективности и снижению нажатий клавиш в пользовательском интерфейсе.
V) Примечание. Также необходимо устранить внезапные обновления пользовательского интерфейса (в Android), которые в настоящее время присутствуют в режиме глубокого обмена, когда контакты возвращаются в "shareUI". Другой пример - при добавлении к "моменту" в Твиттере (мобильном) пользовательский интерфейс внезапно прибегает через несколько секунд.
Заключительные замечания: Спасибо всем, кто нашел время, чтобы прочитать это, и я был бы признателен за любую помощь, которую вы можете предоставить.
Также большое спасибо всем за этот удивительный технический материал, который я нашел здесь!!! Это было бы чрезвычайно сложно без использования SO сообщества в качестве ресурса! С уважением, Дэвид Дж. Хорсман
[Vs1 - Вопросы и примечания] [Vs2 - Связанные ссылки и форматирование] [Vs3 - Исправления и опечатки] [Vs4 - Четкость и форматирование]