Начал работать с AppShortcuts, создал всё как требует того офф документация:
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:targetApi="25">
<shortcut
android:enabled="true"
android:icon="@drawable/ic_category_transfer"
android:shortcutId="shortcut_name"
android:shortcutShortLabel="@string/common_transactions_add_transaction">
<intent
android:action="android.intent.action.VIEW"
android:targetClass=".LauncherActivity"
android:targetPackage="com.sai.android">
</intent>
<categories android:name="android.shortcut.conversation" />
</shortcut>
Протестировал в эмуляторе, иконка с текстом появляется но при попытке перехода по этой вкладке, выдаёт текст
App isn't installed
Хотя приложение установлено. Возможно, дело в атрибуте android:action, так как я еще до конца не разобрался с ним.
Отвечаю на дополнение к вопросу:
Ну у меня эта главная активити, а переходить я хотел во фрагмент
Так как у вас есть Ваша главная активити, то благодаря ней можно попасть в желаемый фрагмент.
Во-первых, стоит всё таки убедиться в правильности написания атрибутов в shortcuts.xml. Будет это выглядеть примерно так:
<intent
android:action="com.vm.sai.activities"
android:targetClass="com.vm.sai.activities.MainActivity"
android:targetPackage="com.vm.sai">
</intent>
А уже в Вашей активити вам придётся реализовать следующую конструкцию в методе onCreate():
if("com.vm.sai.activities".equals(getIntent().getAction())) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new MainFragment()).commit();
}
Ну и конечно ещё раз убедитесь, что в AndroidManifest.xml у Вас к главной активити в intent'e прописана meta-data:
<meta-data android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
Также для более детального ознакомления:
App Shortcuts;
ShortcutManager;
ShortcutInfo Builder.
Проверьте, что имя пакета приложения в манифесте совпадает с
android:targetPackage="com.sai.android"
и здесь укажите полный путь к классу для верности
android:targetClass=".LauncherActivity"
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники