Установка приложений по умолчанию через ADB

У меня есть устройство Android (Android 4.4) с двумя лаунчерами. Один идет в комплекте с устройством, а другой самодельный. У меня есть следующие вопросы по этому сценарию:

  1. Как я могу установить лаунчер по умолчанию через ADB? (так же, как выбрать один и нажать Всегда )
  2. Как я могу очистить выбор программы запуска по умолчанию через ADB? (так же, как вход в приложения по умолчанию и очистка настроек по умолчанию)

Пожалуйста, не отправляйте ответы или комментарии, которые не рассматривают использование ADB. Меня не интересует ни один из них.

Кроме того, я уже знаю об отключении одного из лаунчеров через ADB ( pm disable app_package_name) и последующем его повторном включении, но это не то же самое, что установка лаунчера по умолчанию или настройка предпочтительной активности. Вы можете увидеть разницу на следующем изображении:

введите описание изображения здесь

Разрешено ли использование ключевых событий ? Кроме того, настройки для приложений по умолчанию хранятся внутри файлов /data/system/users/USERID/package-restrictions.xml. Пользователи не могут написать его без root-доступа.
@Firelord Нет, использование ключевых событий запрещено. Еще +1 за идею, может на будущее. Что касается /data/system/users/USERID/package-restrictions.xmlфайла, это именно то, что работает, pm disable app_package_nameа затем pm enable app_package_nameделает.

Ответы (3)

Нет необходимости удалять программу запуска по умолчанию, вы должны знать ее имя пакета, прежде чем делать это, и если вы не знаете, вы должны получить его с расширением adb shell cmd shortcut get-default-launcher.

Чтобы установить пусковую установку по умолчанию, вам просто нужно вызвать следующее

adb shell cmd package set-home-activity "your.package/.YourLauncherActivity"
Как вернуть эту настройку?
@Sergio, самый быстрый способ — это удалить ваше домашнее приложение, и исходное приложение автоматически вернется в исходное состояние. Лучший способ (IMO) - найти заранее, до применения вашей программы запуска, оригинальную adb shell cmd shortcut get-default-launcherи использовать ее имя пакета и имя активности, чтобы вручную установить его по умолчанию с помощьюadb shell cmd package set-home-activity "your.package/.YourLauncherActivity"
@Sergio Серджио, я должен пояснить свой предыдущий комментарий: если у вас более 2 домашних приложений для запуска, удаление вашего пользовательского, вероятно, не установит исходное приложение по умолчанию автоматически, но вызовет средство выбора, в котором вам нужно вручную выбрать приложение. тот, который вы хотите. Еще одна причина, по которой лучше всего установить его обратно, заранее зная его имя пакета/активности.
Спасибо за ответ. Перед установкой нового пакета рекомендуется найти пакет по умолчанию.

вы можете удалить (удалить) программу по умолчанию, которую вы установили с помощью ADB , выполнив следующие действия:

adb uninstall app.package  ..... //for example (com.example.homeapp)

Если вы не хотите удалять приложение... вот быстрый способ сделать это:

  • adb оболочка
  • Я начинаю -a android.intent.action.MAIN

Таким образом, у вас будет средство выбора со всеми приложениями на ваших устройствах, которые прослушивают основное действие .

  • Выберите любое приложение на главном экране, которое вы хотите. затем перейдите в настройки и установите его по умолчанию.

Скопировано из этого ответа

Я знаю, что это не ответ на заданный вопрос, в любом случае это может помочь кому-то установить ссылки на приложения по умолчанию (глубокие ссылки):

Android 12+ (начиная с API 31)

adb shell pm set-app-links --package [PACKAGE_NAME] 1 [URL_HOST]

напримерadb shell pm set-app-links --package com.company.myapp 1 myapp.company.com

Android 11- (API 30 и ниже)

adb shell pm set-app-link [PACKAGE_NAME] always