Определить, какому приложению принадлежит значок на моем домашнем экране

Связанный:

Как я могу определить, какое приложение поместило ярлык спама на мой домашний экран?

Как удалить ненужные значки приложений с экрана?

Я читал, что в одном из ответов предлагается установить TrustGo Ad Detector. Тем не менее, я хотел бы знать, можно ли определить, какое приложение создало значок или ярлык запуска, используя инструменты программирования, которые поставляются с Android SDK, например adb?

Обновлять:

Я установил и запустил сканирование с помощью TrustGo Ad Detector. Он сообщил об 0 приложениях, которые устанавливают ярлыки на моем домашнем экране.

Ответы (1)

Определить, какому приложению принадлежит значок на моем домашнем экране

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

Например, если ярлык появляется на моем домашнем экране, когда com.android.launcherактивна собственная панель запуска Android ( ), я буду продолжать просматривать контент в формате /data/data/com.android.launcher/databases/launcher.db. Проблема в том, что обычный пользователь не может получить /data/dataпрямой доступ без прав root.

  • Поскольку вопрос требует использования adbтолько с, я бы предложил сделать резервную копию приложения запуска и извлечь .abрезервную копию с помощью Android Backup Extractor . Теперь вы можете получить доступ к launcher.dbиз него. Я использую браузер БД для SQLite , чтобы открыть .dbфайл.

  • Пользователи с корневым доступом могут использовать adb pull <SOURCE> <TARGET>для получения соответствующего файла. Вы также можете попробовать редактор SQLite .

Расположение ярлыков может различаться в разных программах запуска.

  • В моем родном лаунчере Android и Nova Launcher записи находятся в таблице favoritesсоответственно.
  • У Smart Launcher они есть в таблице flowerBubble.

Как только вы окажетесь внутри соответствующей таблицы, найдите ярлык под столбцом titleи увидите там все соответствующие значения столбца.

В моих выводах пользовательские ярлыки имели iconTypeзначение больше, чем 0, а для некоторых пользовательских ярлыков iconPackageи iconResourceимели значения в виде имени приложения и ресурса, значок которого отображается.

Обратите внимание , что мои выводы основаны только на трех вышеупомянутых пусковых установках, и ваша пусковая установка может не отражать аналогичную картину.

[Возможно ли] определить, какое приложение создало значок или ярлык запуска [на моем домашнем экране]?

У меня есть сомнения, действительно ли это возможно. Как уже ясно, ярлыки на главном экране (в отличие от традиционных GNU/Linux) не являются символическими ссылками, поскольку их структура варьируется от средства запуска к средству запуска, и обычно их нельзя вызвать или выполнить, если само средство запуска не активно (возможно, потому, что родительское средство запуска может только знать, следует ли рассматривать запись как ярлык или нет).

Основываясь на моих выводах, мой ответ будет отрицательным , вы не можете определить, какое приложение создало ярлык на главном экране.