Can';在android中找不到getPackageManager()方法

Can';在android中找不到getPackageManager()方法,android,Android,我的项目有问题 虽然导入了android.content.pm.PackageManager,但找不到getPackageManager()方法 这段代码怎么了 List<PackageInfo> packs = getPackageManager().getInstalledPackages(0); List packs=getPackageManager().getInstalledPackages(0); .谢谢你的帮助试试这个 我猜你是extensionsisFragme

我的项目有问题

虽然导入了
android.content.pm.PackageManager,但找不到
getPackageManager()
方法

这段代码怎么了

List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
List packs=getPackageManager().getInstalledPackages(0);
.谢谢你的帮助

试试这个

我猜你是extensionsis
Fragment

因此,您必须像下面这样使用
getActivity().getPackageManager()

List<PackageInfo> packs = getActivity().getPackageManager().getInstalledPackages(0);
List<PackageInfo> packs = context.getPackageManager().getInstalledPackages(0);

如果在类构造函数中有作为参数传递的上下文,例如广播接收器的上下文,也可以尝试context.getPackageManager()。 如果扩展片段,请使用
getActivity().getPackageManager().getInstalledPackages(0)

else
context.getPackageManager().getInstalledPackages(0)

错误不在代码行中,而是在调用代码的位置
getPackageManager()
是一种上下文方法。您可以在活动中使用此方法(因为活动是一个上下文),但如果您在其他地方调用它,则需要传递上下文。在片段中,您还可以访问getActivity()函数,该函数返回活动上下文

    Context context...;

    context.getPackageManager();
    getActivity().getPackageManager();

我认为这可能是由于
Context

如果您正在使用

活动:然后您可以通过导入
android.content.pm.PackageManager直接访问此方法

如果您使用的是片段:,那么您需要提供
getActivity()
以使用该方法

List<PackageInfo> packs = getActivity().getPackageManager().getInstalledPackages(0);
List packs=getActivity().getPackageManager().getInstalledPackages(0);

如果您在活动中使用它,则不会收到
getPacketManager
的错误或警告,但如果您在片段中使用它,则应在其前面加上
getActivity

示例:


PackageManager pm=getActivity().getPackageManager()

您是否收到任何错误?您的类是使用FragmentActivity、Activity还是Fragment扩展的?@user3418401如果它对您有效,那么您可以标记并更新它,以便其他开发人员可以快速获得解决方案。@RonakMehta我正在使用AsyncTask,您能建议我应该使用什么上下文吗???@Asahish,请在这里使用Activity context。