我的项目有问题。虽然导入了android.content.pm.PackageManager;,但找不到getPackageManager()方法这段代码有什么问题
android.content.pm.PackageManager;
getPackageManager()
List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
1.谢谢你的帮助
djp7away1#
错误不在您的代码行中,而在您调用它的地方。getPackageManager()是Context的一个方法。您可以在Activity内部使用此方法(因为Activity是Context),但如果您在其他地方调用它,则需要传递Context。在片段中,您还可以访问getActivity()函数,该函数返回Activity-Context。
Context context...; context.getPackageManager(); getActivity().getPackageManager();
n6lpvg4x2#
如果您在Activity中使用它,则不会收到getPacketManager的错误或警告,但如果您在Fragments中使用它,则应该在它前面加上getActivity。
getPacketManager
getActivity
示例:
PackageManager pm = getActivity().getPackageManager();
kqlmhetl3#
试试这个我猜你是...因此,您必须像下面这样使用getActivity().getPackageManager()
getActivity().getPackageManager()
List<PackageInfo> packs = getActivity().getPackageManager().getInstalledPackages(0);
或扩展为BroadcastReceiver在onReceive侧,必须使用context.getPackageManager(),如下所示
BroadcastReceiver
onReceive
context.getPackageManager()
List<PackageInfo> packs = context.getPackageManager().getInstalledPackages(0);
kwvwclae4#
我想这可能是由于Context如果您正在使用
Context
**活动:**然后您可以通过导入android.content.pm.PackageManager;直接访问此方法
如果使用Fragment:,则需要提供getActivity()才能使用方法
getActivity()
即:
yqkkidmi5#
如果你有上下文作为类构造函数中的参数传递,你也可以尝试context.getPackageManager(),例如对于Broadcast receiver
eh57zj3b6#
是的,如果你扩展片段,使用getActivity().getPackageManager().getInstalledPackages(0);或者context.getPackageManager().getInstalledPackages(0);
getActivity().getPackageManager().getInstalledPackages(0);
context.getPackageManager().getInstalledPackages(0);
wydwbb8l7#
如果使用Jetpack合成和Kotlin,请使用LocalContext.current.packageManager
LocalContext.current.packageManager
7条答案
按热度按时间djp7away1#
错误不在您的代码行中,而在您调用它的地方。
getPackageManager()
是Context的一个方法。您可以在Activity内部使用此方法(因为Activity是Context),但如果您在其他地方调用它,则需要传递Context。在片段中,您还可以访问getActivity()函数,该函数返回Activity-Context。n6lpvg4x2#
如果您在Activity中使用它,则不会收到
getPacketManager
的错误或警告,但如果您在Fragments中使用它,则应该在它前面加上getActivity
。示例:
PackageManager pm = getActivity().getPackageManager();
kqlmhetl3#
试试这个
我猜你是...
因此,您必须像下面这样使用
getActivity().getPackageManager()
或扩展为
BroadcastReceiver
在
onReceive
侧,必须使用context.getPackageManager()
,如下所示kwvwclae4#
我想这可能是由于
Context
如果您正在使用
**活动:**然后您可以通过导入
android.content.pm.PackageManager;
直接访问此方法如果使用Fragment:,则需要提供
getActivity()
才能使用方法即:
yqkkidmi5#
如果你有上下文作为类构造函数中的参数传递,你也可以尝试context.getPackageManager(),例如对于Broadcast receiver
eh57zj3b6#
是的,如果你扩展片段,使用
getActivity().getPackageManager().getInstalledPackages(0);
或者context.getPackageManager().getInstalledPackages(0);
wydwbb8l7#
如果使用Jetpack合成和Kotlin,请使用
LocalContext.current.packageManager