#android #android-package-managers
#Android #android-package-managers
Вопрос:
Я пытаюсь провести различие между системными приложениями и приложениями, установленными пользователем, с помощью следующего фрагмента кода:
public void getInstalledApps() {
int flags = PackageManager.GET_META_DATA |
PackageManager.GET_SHARED_LIBRARY_FILES |
PackageManager.GET_UNINSTALLED_PACKAGES;
PackageManager pm = context.getPackageManager();
List<ApplicationInfo> applications = pm.getInstalledApplications(flags);
for(ApplicationInfo appInfo : applications) {
if((appInfo.flags amp; ApplicationInfo.FLAG_SYSTEM) == 1) {
// System application
Log.i("TESTAPPSYSTEM", pm.getApplicationLabel(appInfo).toString());
} else {
// Installed by user
Log.i("TESTAPPUSER", pm.getApplicationLabel(appInfo).toString());
}
}
}
Но в консоли Android Studio я увидел, что:
06-17 15:19:42.639 14822-14822/it.example.myapplication.app I/TESTAPPSYSTEM WhatsApp
В отличие от других приложений, установленных пользователем (например, Telegram), Whatsapp рассматривается как системное приложение, а не как приложение, установленное пользователем: почему?
Комментарии:
1. Был ли WhatsApp предварительно установлен на вашем устройстве?
2. Теперь я понимаю: Whatsapp был включен в последнее установленное мной ПЗУ. Я проверил функции ПЗУ, и Whatsapp был там. Но как я могу отличить установленные или включенные приложения, если они включены в ПЗУ?
3. Что вы имеете в виду? По определению, приложение, включенное в ПЗУ, является системным приложением
4. Я хочу иметь возможность закрывать запущенные установленные приложения (а не запущенные системные), и для этого мне нужно видеть Whatsapp как приложение, установленное пользователем.
Ответ №1:
Whatsapp предварительно установлен либо в вашей операционной системе Android от производителя, либо в ПЗУ, которое вы установили на свой телефон, вы не можете это изменить, однако, если у вас рутированный телефон, вы можете удалить WhatsApp, а затем установить его из Play Store, чтобы он был установлен как пользовательское приложение, а не как пользовательское приложение.системное приложение. Кроме того, существуют приложения, которые закрывают системные приложения, хотя, я полагаю, вам снова потребуется root-доступ для выполнения этой задачи.