【发布时间】:2014-04-19 16:17:00
【问题描述】:
我正在考虑在自定义列表视图中显示所有可以发送通知的应用程序(即 Facebook、Twitter、游戏等)。我正在使用 PackageManager 来安装所有应用程序,并且我正在考虑使用意图“过滤器”:
mContext = context;
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
pm = mContext.getPackageManager();
List<ResolveInfo> appList = pm.queryIntentActivities(mainIntent, 0);
CATEGORY_LAUNCHER 包含许多永远不会发送通知的应用(设置、相机、动态壁纸)。我该如何解决?它的类别是否正确?或者我必须检查所有安装的应用程序权限并仅选择具有“通知权限”的应用程序?如果是,那是什么权限?
【问题讨论】:
-
没有通知的权限或意图。据我所知,你想要做的事情是不可能的。
-
“发送通知”是什么意思?您的意思是“显示
Notification”吗? -
@CommonsWare 是的,我的意思是显示。
-
@XaverKapeller 恐怕你是对的。因此,我可以向用户提供已安装应用程序的整个列表(如果选中了 ipotetich “扩展列表”选项),并为他提供一组选项,他至少可以限制该列表。例如,选中“仅邮件”选项将强制 CATEGORY_APPS_EMAIL 作为意图。我再次为我的英语感到抱歉:(我尽力了。
-
这能回答你的问题吗? How to get list of ALL apps (including System Apps)?(因为所有应用都可以发送通知)
标签: android notifications package-managers