Команда оболочки adb для отображения диалогового окна удаления пакета Android

я имеюadb работает и устройство подключено к моей системе в режиме отладки,

Я хочу удалить приложение с помощью намеренного запуска с помощьюadb shell am start

Я нене хочу удалять с помощьюadb uninstall com.company.apppackage и я нене хочу делать это даже с помощьюadb shell pm uninstall com.company.apppackage

Как я могу отправить намерение сandroid.intent.action.DELETE действие для определенного пакета, позволяющее пользователю увидеть подсказку и удалить программу?

Ответы на вопрос(6)

В моем случае я делаюadb shell pm list packages сначала чтобы увидеть, какие пакеты / приложения установлены на моем устройстве Android или в эмуляторе, затем, найдя нужный пакет / приложение, я делаюadb shell pm uninstall -k com.package.name

Используйте эту команду в cmd:

adb shell pm удалить -kcom.packagename

Например:

adb shell pm uninstall -k com.fedmich.pagexray

-k flag сообщает менеджеру пакетов, что нужно хранить кеш и каталоги данных, даже если приложение удалено. Если вы хотите, чтобы чистая удалить, нет уточнить.-k

 fedmich27 дек. 2013 г., 07:24
@Lohoris, заставил это работать .. обязательно убери "+" на никогдаответ
 fedmich28 дек. 2013 г., 02:20
правильно, должен был отредактировать это раньше. отредактировал это :)
 o0'.05 дек. 2013 г., 15:39
Didn»не работает для меня на двух разных устройствах, не знаю почему
 OrhanC128 окт. 2013 г., 11:40
@joctee, я тоже, но вопрос конкретно сказал, что они нене хочу удалять с помощью намерения.
 Johnny_D10 февр. 2014 г., 12:02
Этот способ удаления также удаляет настройки и кеш? Или просто удаляет приложение.
 fedmich27 дек. 2013 г., 07:23
Хм, нет работал на моем Nexus 7 ...
 IgorGanapolsky01 авг. 2016 г., 15:01
Я продолжаю получатьнедостаточность сообщения при попытке использовать эту команду.
 o0'.27 дек. 2013 г., 16:39
@fedmich не стесняйтесь редактировать свой ответ :)
 Yojimbo12 февр. 2014 г., 23:44
@Johnny_D Флаг -k сообщает менеджеру пакетов, что нужно хранить кеш и каталоги данных, даже если приложение удалено. Если вы хотите, чтобы чистая удалить, нене могу указать -k.
 joctee25 июн. 2013 г., 17:08
Мне больше нравится этот ответ. Потому что с этим вы не получите диалоговое окно подтверждения восстановления.

Я предполагаю, что вы включитеdeveloper mode на вашем устройстве Android, и вы подключены к устройству, и у вас есть доступ к оболочке (adb shell).

После этого вы можете удалить приложение с помощью этой команды.pm uninstall --user 0 0 является корневым идентификатором -Так как ты неНе нужно слишком рутировать ваше устройство.

Вот пример, как я сделал на моем Huawei P110 lite
# gain shell access
$ adb shell

# check who you are
$ whoami
shell

# obtain user id
$ id
uid=2000(shell) gid=2000(shell)

# list packages
$ pm list packages | grep google                                                                                                                                                         
package:com.google.android.youtube
package:com.google.android.ext.services
package:com.google.android.googlequicksearchbox
package:com.google.android.onetimeinitializer
package:com.google.android.ext.shared
package:com.google.android.apps.docs.editors.sheets
package:com.google.android.configupdater
package:com.google.android.marvin.talkback
package:com.google.android.apps.tachyon
package:com.google.android.instantapps.supervisor
package:com.google.android.setupwizard
package:com.google.android.music
package:com.google.android.apps.docs
package:com.google.android.apps.maps
package:com.google.android.webview
package:com.google.android.syncadapters.contacts
package:com.google.android.packageinstaller
package:com.google.android.gm
package:com.google.android.gms
package:com.google.android.gsf
package:com.google.android.tts
package:com.google.android.partnersetup
package:com.google.android.videos
package:com.google.android.feedback
package:com.google.android.printservice.recommendation
package:com.google.android.apps.photos
package:com.google.android.syncadapters.calendar
package:com.google.android.gsf.login
package:com.google.android.backuptransport
package:com.google.android.inputmethod.latin

# uninstall gmail app
pm uninstall --user 0 com.google.android.gms

Хотя приведенные выше ответы работают, но если к вашему компьютеру подключено несколько устройств, то для удаления приложения из одного из них можно использовать следующую команду:

adb -s  shell pm uninstall 

Если вы хотите узнать серийный номер устройства, используйте следующую команду:

adb devices -l

Это даст вам список подключенных устройств. В левом столбце показаны серийные номера устройства.

Используя 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"

Замените ПАКЕТ на имя пакета установленного пользовательского приложения. Приложение не должнобыть администратором устройства для успешной работы команды. Все эти команды потребуют пользователяПодтверждение удаления приложения.

Подробности указанной команды можно узнать, проверивя»использование с использованием.adb shell am

Я получил информацию об этих командах, используяЭликсир 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}

Здесь вы можете увидеть действие, данные, флаг и компонент - достаточно для цели.

 Firelord10 дек. 2015 г., 22:03
Я понимаю, что вопрос старый, поэтому мой ответ может быть не очень актуален. Но это полностью относится к версиям Android, используемым большинством пользователей в настоящее время.
Решение Вопроса

Вы можете сделать это из ADB с помощью этой команды:

adb shell am start -a android.intent.action.DELETE -d package:
 gonzobrains22 июн. 2013 г., 01:12
Это работает, если у приложения есть активные политики устройства?
 ViliusK21 июн. 2016 г., 06:50
Приведенная выше команда показывает диалоговое окно подтверждения удаления этого приложения на телефоне. использованиеadb shell pm uninstall -k com.packagename вместо.
 Rinkal Bhanderi18 окт. 2012 г., 11:10
Подскажите, пожалуйста, что такое пакет -d: <пакет вашего приложения> обозначает? какая-нибудь документация есть?
 auhmaan04 июл. 2016 г., 18:40
@ViliusK I 'я уверен, чтоТо, что хотел Ринкал, всплывающее окно после команды.
 pcans24 июн. 2013 г., 10:23
Нет, если ваше приложение содержит активированный DevicePolicyManager, вам придется сначала отключить его вручную.
 pcans18 окт. 2012 г., 11:23
-d означает данные. -А означает действие. Вы запускаете Намерение с действием как "Удалять"и данные как "пакет: ваш пакет приложений ", Это запустит действие, отвечающее за удаление пакетов, и попытается удалить пакет, указанный в данных. Документация может быть найдена с помощью "adb shell am " команда.
 IgorGanapolsky01 авг. 2016 г., 14:59
Это быт работать для системных приложений. Откроется диалоговое окно с приглашением, но приложение не будет удалено.

Ваш ответ на вопрос