У меня есть представление в качестве главного экрана приложения, которое содержит доступные действия приложения в виде пар значков и текста (как на рабочем столе).
Я хочу узнать программно, какие действия определены ТОЛЬКО в моем AndroidManifest.xml
Предположим, у меня есть:
< 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, например, он будет автоматически прочитан.
Намерение намерение = новое намерение ("android.intent.action.VIEW"); намерение.addCategory("example.custom.ACTIVITY"); Список разрешает = getPackageManager().queryIntentActivities(намерение, 0);
В списке разрешений я ожидаю наличия двух определенных действий, чтобы я мог получить их метку и изображение и создать значок для рабочего стола.
Я думал, что это можно сделать, определив пользовательскую категорию, example.custom.ACTIVITY, и в mainActivity используйте packageManager.queryIntentActivities (намерение намерения, флаги int), но, похоже, это не работает.
Я действительно хотел бы закодировать его, чтобы динамически обнаруживать установленные действия в моем приложении. У вас есть идеи, как это сделать? Спасибо