Не удается найти метод getPackageManager() в android
У меня проблема с моим проектом.
Я не могу найти метод getPackageManager()
, хотя я импортировал android.content.pm.PackageManager;
что не так с этим фрагментом кода
List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
. Спасибо за помощь
Ответы
Ответ 1
Ошибка не в вашей строке кода, а там, где вы ее вызываете. getPackageManager()
- метод контекста. Вы можете использовать этот метод внутри Activity (потому что Activity - это контекст), но если вы вызываете его в другом месте, вам нужно передать контекст. Во фрагменте вы также можете получить доступ к функции getActivity(), которая возвращает контекст Acitivity.
Context context...;
context.getPackageManager();
getActivity().getPackageManager();
Ответ 2
Я думаю, что это может быть связано с Context
Если вы используете
Активность:. Затем вы можете напрямую получить доступ к этому методу, импортировав android.content.pm.PackageManager;
Если вы используете Фрагмент: Затем вам нужно предоставить getActivity()
для использования метода
т.е.
List<PackageInfo> packs = getActivity().getPackageManager().getInstalledPackages(0);
Ответ 3
Попробуйте это.
Я думаю, что вы extends есть Fragment
Итак, вы должны использовать getActivity().getPackageManager()
, как показано ниже
List<PackageInfo> packs = getActivity().getPackageManager().getInstalledPackages(0);
Или extends есть BroadcastReceiver
В стороне onReceive
вы должны использовать context.getPackageManager()
, как показано ниже
List<PackageInfo> packs = context.getPackageManager().getInstalledPackages(0);
Ответ 4
вы также можете попробовать context.getPackageManager(), если контекст передан как параметр в вашем конструкторе класса, например, для широковещательного приемника
Ответ 5
Угу.
если вы используете фрагмент getActivity().getPackageManager().getInstalledPackages(0);
else context.getPackageManager().getInstalledPackages(0);