gpt4 book ai didi

安卓自定义分类

转载 作者:行者123 更新时间:2023-11-29 02:17:12 24 4
gpt4 key购买 nike

我有一个作为应用程序主屏幕的 View ,其中包含作为图标+文本对(类似桌面)的可用应用程序操作。

我想以编程方式找出仅在我的 AndroidManifest.xml 中定义的 Activity

假设我有:

< activity android:name="example.mainActivity" android:label="mainActivity">  
< intent-filter>
< action android:name="android.intent.action.MAIN" />
< category android:name="android.intent.category.LAUNCHER" />
< /intent-filter>
< /activity>
< activity android:name="example.activity1" android:label="Activity1">
< intent-filter>
< action android:name="android.intent.action.VIEW" />
< category android:name="example.custom.ACTIVITY" />
< /intent-filter>
< /activity>
< activity android:name="example.activity2" android:label="Activity2">
< intent-filter>
< action android:name="android.intent.action.VIEW" />
< category android:name="example.custom.ACTIVITY" />
< /intent-filter>
< /activity>

我希望在 mainActivity 中动态读取 Activity1 和 Activity2,因为当我添加 Activity3 时,它会自动读取。

Intent intent = new Intent("android.intent.action.VIEW");intent.addCategory("example.custom.ACTIVITY");List resolves = getPackageManager().queryIntentActivities(intent, 0);

在解决列表中,我希望有两个定义的 Activity ,这样我就可以获得它们的标签和图像并为桌面创建图标

我认为这可以通过定义自定义类别 example.custom.ACTIVITY 来完成,并在 mainActivity 中使用 packageManager.queryIntentActivities(Intent intent, int flags) 但它似乎不起作用。

我真的很想编写代码以动态地发现我的应用程序中已安装的 Activity 。您对如何执行此操作有任何想法吗?谢谢

最佳答案

在我的应用程序中,我将操作定义为“android.intent.action.MAIN”(而不是“android.intent.action.VIEW”),检索工作如您所料:

Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory("com.example.ACTIVITY");
PackageManager pm = getPackageManager();
List<ResolveInfo> list = pm.queryIntentActivities(intent, 0);

另外,我使用了“com.example”,因为“example”不是一个好的命名空间示例,因为 list 中的包声明必须至少有两个段(参见 here)

关于安卓自定义分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2681053/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com