Я работаю над приложением, которое расширяет функциональность другого существующего приложения. Я хочу знать, что самый простой способ - через код определить, установлено ли первое приложение, желательно, ссылаясь на него com.whoever.whatever, но почти любые критерии были бы полезны.
Android - проверьте наличие другого приложения
Ответ 1
android.content.pm.PackageManager mPm = getPackageManager(); // 1
PackageInfo info = mPm.getPackageInfo(pName, 0); // 2,3
Boolean installed = info != null;
- Используемый в действии, вам нужен контекст, чтобы получить PackageManager
- Броски
PackageManager.NameNotFoundException
, я думаю. проверьте! - pName - это что-то вроде "com.yourcompany.appname", то же самое, что и значение "package" в манифесте приложения
Ответ 2
Рекомендуемый способ - проверить, публикует ли другое приложение Intent. Большинство намерений не принадлежат определенному приложению, поэтому, скажем, если вы ищете программу, которая публикует намерение "отправлять почту", открывающейся программой может быть приложение Gmail или приложение Yahoo Mail, в зависимости от выбора пользователя и что было установлено в системе.
Вы можете посмотреть на это: http://developer.android.com/guide/topics/intents/intents-filters.html