Скрыть и отобразить значок приложения
Я хочу, чтобы пользователь мог скрывать и отображать значок запуска приложения. Я нашел решение на https://www.nexsoftsys.com/articles/how-to-hide-application-launcher-lcon-in-android.html Я также нашел это то же решение на иконке Скрыть приложение
Тем не менее, в последней ссылке говорится, что этот код, который появляется в обоих вышеупомянутых
PackageManager pm = getApplicationContext().getPackageManager();
pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
"сделает приложение НЕ подлежащим обновлению из Google Play, так как ОС не найдет пакет после отключения этого компонента и не сможет переустановить его, если только приложение не удалено вручную (что не очень удобно для пользователя)"
Я пытался выяснить, правда это или нет, но без удачи. Кто-нибудь может ответить на это, пожалуйста? Большое спасибо заранее
3 ответа
Вы просите нас доказать отрицание.
Если этот негатив явно не сформулирован в документации Android, или если он явно не запрещен в терминах сервисов Google Play для издателей / разработчиков (что, похоже, не так, но я не юрист), на самом деле это очень сложно. чтобы доказать, что определенной функции Android не существует.
Единственное решение, которое будет работать на всех телефонах Android, о которых я знаю, - это создать свой собственный модуль запуска. С помощью пользовательского модуля запуска, который пользователь устанавливает и делает своим основным средством запуска, вы можете скрыть из него любое приложение, которое хотите, даже самого себя.
Помимо этого одного решения, другие частичные решения будут:
Только на телефонах Samsung и Sony вы можете использовать API Samsung Knox и собственные API Sony. Если ваше приложение носит коммерческий характер, рассчитывайте заплатить за это деньги.
На телефонах Samsung также можно дать инструкции для пользователя, чтобы вручную скрыть значок приложения.
Если ваше приложение на самом деле основано на телефонии, что звучит так, как оно есть, вы можете подумать о переносе его функций в облако с помощью таких сервисов, как Twilio или Voxeo. Таким образом, пользователю нужно будет только добавить номер телефона к своему избранному / быстрому набору, без необходимости устанавливать что-либо, и вы можете обновлять свое облачное приложение так часто, как вам нужно, без необходимости обновлять телефон. И, возможно, вы могли бы даже расширить функциональность своего облачного приложения с помощью API-интерфейсов, специфичных для операторов связи.
Поскольку мы не можем знать, как Google Play (который является частной) обновляет конкретное приложение, мы не можем дать логического обоснования этому. Это зависит от того, как Google Play обновляет приложения / добавляет новые патчи. Единственный способ подтвердить это - спросить кого-то, кто делал это раньше. Этот вопрос задает тот же вопрос, и один разработчик подтвердил, что он работает. Ответ был принят.
Я полагаю, что в настоящее время вы должны отключить компонент запуска, чтобы скрыть приложение. Это не значит, что другие компоненты отключены. Другие компоненты все еще активны. Вот почему активные компоненты должны все еще быть обновляемыми. Чтобы играть безопасно, ваши будущие обновления должны быть сделаны в активных компонентах. Вы также можете использовать компонент запуска псевдонимов для своего приложения. Как то так
Вы можете скрыть значок приложения, используя следующий код:
PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(this, com.apps.MainActivity.class);
p.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
Показать значок приложения, используя код ниже:
PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(this, com.apps.MainActivity.class);
p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);