0

我在 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 中的问题?...在​​他的视频中,他获得了所有应用程序。难道是我的模拟器的清单不包含其他应用程序?是我的模拟器还是比代码更深层次的问题?我在这里做错了什么?

谢谢!

4

0 回答 0