在android中找不到getPackageManager()方法

use*_*401 32 android

我的项目有问题.

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

这段代码有什么问题

List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

Nam*_*ace 56

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

    Context context...;

    context.getPackageManager();
    getActivity().getPackageManager();
Run Code Online (Sandbox Code Playgroud)


小智 8

如果您在Activity中使用它,则不会收到错误或警告getPacketManager,但如果您在Fragments中使用它,则应在其前面添加getActivity.

例:

PackageManager pm = getActivity().getPackageManager();


Har*_*ran 5

尝试这个..

我猜你是延伸Fragment

所以,你必须getActivity().getPackageManager()像下面这样使用

List<PackageInfo> packs = getActivity().getPackageManager().getInstalledPackages(0);
Run Code Online (Sandbox Code Playgroud)

扩展BroadcastReceiver

在侧面onReceive你必须context.getPackageManager()像下面这样使用

List<PackageInfo> packs = context.getPackageManager().getInstalledPackages(0);
Run Code Online (Sandbox Code Playgroud)