Ответ 1
Вы можете сделать это из adb с помощью этой команды:
adb shell am start -a android.intent.action.DELETE -d package:<your app package>
У меня работает adb, и устройство подключено к моей системе в режиме отладки,
Я хочу удалить приложение, используя запуск запуска в оболочке adb, используя am start <INTENT>
Я не хочу удалять с помощью adb uninstall com.company.apppackage
и не хочу этого делать, даже используя pm uninstall com.company.apppackage
Есть ли способ, которым я могу использовать действие action action (android.intent.action.DELETE
), и пользователь получает запрос на удаление некоторой программы.
Вы можете сделать это из adb с помощью этой команды:
adb shell am start -a android.intent.action.DELETE -d package:<your app package>
Используйте эту команду в cmd:
adb shell pm uninstall -k com.packagename
Например:
adb shell pm uninstall -k com.fedmich.pagexray
Флаг -k
указывает диспетчеру пакетов хранить каталоги кэша и данных, даже если приложение удалено. Если вы хотите очистить удаление, не указывайте -k
.
Используя ADB, вы можете использовать любую из следующих трех команд:
adb shell am start -a android.intent.action.UNINSTALL_PACKAGE -d "package:PACKAGE"
adb shell am start -n com.android.packageinstaller/.UninstallerActivity -d "package:PACKAGE"
adb shell am start -a android.intent.action.DELETE -d "package:PACKAGE"
Замените ПАКЕТ с именем пакета установленного пользовательского приложения. Приложение не должно быть администратором устройства для успешной работы команды. Все эти команды потребуют подтверждения пользователя для удаления приложения.
Сведения о указанной команде можно узнать, проверив использование am с помощью adb shell am
.
Я получил информацию об этих командах, используя Elixir 2 (используйте любое эквивалентное приложение). Я использовал его, чтобы показать действия приложения Package Installer (графический интерфейс, который вы видите во время установки и удаления приложений), а также связанные с ним намерения. Там вы идете.
Альтернативный способ, которым я пользовался, был: я попытался удалить приложение с помощью GUI, пока мне не было показано окончательное подтверждение. Я не подтвердил, но выполнил команду
adb shell dumpsys activity recents # for Android 4.4 and above
adb shell dumpsys activity activities # for Android 4.2.1
Кроме всего прочего, он показал мне полезные подробности о намерении, принятом в фоновом режиме. Пример:
intent={act=android.intent.action.DELETE dat=package:com.bartat.android.elixir#com.bartat.android.elixir.MainActivity flg=0x10800000 cmp=com.android.packageinstaller/.UninstallerActivity}
Здесь вы можете увидеть действие, данные, флаг и компонент - достаточно для цели.
В то время как вышеприведенные ответы работают, но если у вас есть несколько устройств, подключенных к вашему компьютеру, для удаления приложения из одного из них может быть использована следующая команда:
adb -s <device-serial> shell pm uninstall <app-package-name>
Если вы хотите узнать серийный номер устройства, используйте следующую команду:
adb devices -l
Это даст вам список подключенных устройств. В левом столбце показаны серийные номера устройств.
В моем случае я делаю adb shell pm list packages
, чтобы сначала увидеть, какие пакеты/приложения установлены на устройстве Android или эмуляторе, а затем, найдя нужный пакет/приложение, я делаю adb shell pm uninstall -k com.package.name
.