我在 IntelliJ 中工作,使用 Java,使用 API 30 运行 Pixel 2 模拟器,项目 API 为 API 15。
我目前正在关注 YouTube 上的视频教程,名为 Make an Android App like NOVA LAUNCHER。到目前为止很棒的教程。我坚持的视频是该系列的第 3 课。链接:https ://www.youtube.com/watch?v=m6-cCI9Q0R0&list=PLxabZQCAe5fhGgSue40-_DjfFc_5ETHhr&index=4
跳到 9:02 看看他的代码在运行中,也显示在这里,完全从 Github 复制。
List<AppObject> list = new ArrayList<>();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> untreatedAppList = getApplicationContext().getPackageManager().queryIntentActivities(intent, 0);
这是对我不起作用的代码:
List<AppObject> list = new ArrayList<>();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> untreatedAppList = getApplicationContext().getPackageManager().queryIntentActivities(intent, 0);
我已经对其进行了三次检查,以确保我尝试过直接复制和粘贴,我尝试过删除和换出“removeApplicationContext()”,并且我已经浏览了许多其他也特别推荐此代码的线程。
每当我最后运行它以了解我的列表识别了多少应用程序时:
System.out.println("Untreated apps \n" + untreatedAppList);
我得到的是:
I/System.out: Untreated apps
[ResolveInfo{498077 com.android.settings/.Settings m=0x108000}, ResolveInfo{77a24e4 com.android.vending/.AssetBrowserActivity m=0x108000}, ResolveInfo{2975d4d injeffinitedevelopment.com/.MainActivity m=0x108000}]
3 个项目,分别是设置、Google Play 和我正在运行的应用程序。
是 getPackageManager() 还是 resloveInfo 中的问题?...在他的视频中,他获得了所有应用程序。难道是我的模拟器的清单不包含其他应用程序?是我的模拟器还是比代码更深层次的问题?我在这里做错了什么?
谢谢!