applicationInfo中如何获取应用程序启动Activity的name

问题描述

applicationInfo中如何获取应用程序启动Activity的name

private static void getAppInfo(ApplicationInfo applicationInfo) {
String packageName = applicationInfo.packageName;// 包名
String activityName = applicationInfo.name; // 获得该应用程序的启动Activity的name
String appLabel = (String) applicationInfo.loadLabel(pm); // 获得应用程序的Label
Drawable icon = applicationInfo.loadIcon(pm); // 获得应用程序图标
// 为应用程序的启动Activity 准备Intent
Intent launchIntent = new Intent();
launchIntent.setComponent(new ComponentName(packageName,
activityName));
AppInfo appInfo = new AppInfo();
appInfo.setAppLabel(appLabel);
appInfo.setPkgName(packageName);
appInfo.setAppIcon(icon);
appInfo.setIntent(launchIntent);
mlistAppInfo.add(appInfo);
}这样是获取不到的

     Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
    // 通过查询,获得所有ResolveInfo对象.
    List<ResolveInfo> resolveInfos = pm
            .queryIntentActivities(mainIntent, PackageManager.MATCH_DEFAULT_ONLY);
    // 调用系统排序 , 根据name排序
    // 该排序很重要,否则只能显示系统应用,而不能列出第三方应用程序
    Collections.sort(resolveInfos, new ResolveInfo.DisplayNameComparator(pm));
    if (mlistAppInfo != null) {
        mlistAppInfo.clear();
        for (ResolveInfo reInfo : resolveInfos) {
            String activityName = reInfo.activityInfo.name; // 获得该应用程序的启动Activity的name
            String pkgName = reInfo.activityInfo.packageName; // 获得应用程序的包名
            String appLabel = (String) reInfo.loadLabel(pm); // 获得应用程序的Label
            Drawable icon = reInfo.loadIcon(pm); // 获得应用程序图标
            // 为应用程序的启动Activity 准备Intent
            Intent launchIntent = new Intent();
            launchIntent.setComponent(new ComponentName(pkgName,
                    activityName));这样就行

解决方案

获取应用程序下所有Activity

时间: 2025-01-24 13:18:56

applicationInfo中如何获取应用程序启动Activity的name的相关文章

javascript中怎么获取农历程序代码

  获取农历 农历月的天数是一个变数,有时是 29 天,有时是 30 天. 农历每月的第一天是月亮全黑的日子. 农历年由 24 个节气来确定,节气则由太阳的角度来确定.农历的第一个节气叫 雨水,定在太阳的角度为 330 度的日子.其余的 23 个节气分别定在太阳的角度 每变化 15 度的日子.下面的表格列出了 24 个节气的名称和定义: 命称    角度    公历日期      周期 立春     315     2月 4日 雨水     330     2月19日    29.8天 惊蛰  

CLR全面透彻解析: 提高应用程序启动性能

由于等待应用程序启动是令许多用户都感到沮丧的一件事情,因此,侧重于提高客户端应用程序的启 动性能将极大增强客户的第一印象,并使他们对您的努力成果印象深刻.同时,鉴于启动性能对用户非常 重要,所以值得研究一下其影响因素,这样才能避免最常见的错误. 应用程序启动通常分为冷启动和热启动.在托管应用程序环境中,冷启动是指 Microsoft .NET Framework 系统程序集和应用程序代码均不在内存中时,因而需要从磁盘提取它们.热启动则是指应用程 序的后续启动,或者当大部分系统代码因之前由另一托管

Android 中启动自己另一个程序的activity如何实现

Android 中启动自己另一个程序的activity如何实现 可以使用action,举例: 1. 比如建立activity4,我们对它的AndroidManifest.xml修改一下 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:<a href="http://lib.csdn.net/base/android" rel="external nof

java-不能从另外一个 package 中启动 activity 吗?

问题描述 不能从另外一个 package 中启动 activity 吗? 当我在程序中点击按钮时,我想从另外一个 package 中启动一个 activity.Intent代码: final Intent myIntent = new Intent(getApplicationContext() com.facebook.android.Places.class) manifest: <activity android:name="".com.facebook.android.P

《Android 应用案例开发大全(第二版)》——6.7节获取第三方程序中可调用的窗口

6.7 获取第三方程序中可调用的窗口 Android开发权威指南(第二版) 第X问1 源代码目录:src/ch06/InvokeSinaWeibo 现在很多程序中使用的功能并未包含在程序本身,都是通过各种插件方式获得的其他程序的资源.例如,经常会使用到的"分享"功能就是调用了系统中所有可以处理某类资源的窗口来实现的,如果这样的窗口多于一个,就会显示一个选择列表. 如果想利用其他程序中的资源,首先要了解程序对外的接口.但很多程序并没有公开相应的接口,在这种情况下,就需要通过该程序的APK

在ASP.NET 2.0中操作数据之五十八:在程序启动阶段缓存数据_自学过程

导言: 前面2章考察了在表现层和缓存层缓存数据.在第56章,我们探讨了在表现层设置ObjectDataSource的相关cache属性来缓存数据.在第57章,我们探讨了创建一个单独的分开的缓存层.这2章都是采用"应激装载"(reactive loading)的模式来缓存数据.该模式下,每次请求数据时,系统先检查其是否在内存,如果没有,则从数据源--比如数据库,来获取数据,然后将其存储在内存里.该模式的优势在于执行起来很容易:而缺点之一在于应"请求"(requests

应用-fragment中通过按钮启动activity

问题描述 fragment中通过按钮启动activity 点击按钮启动时应用停止运行,请大神帮忙看下 logcat报错如下 解决方案 有点看不懂,不过你的button应该从fragment中获取吧,为什么从activity中获取?你把24行的getActivity换成上面的view试试,不过我没用过onstart,不知道有什么特殊的地方 解决方案二: 你button点击事件写个Toast,先看看是不是点击事件的问题 解决方案三: 你这个button是Activity的?还是fragement里面

VC中使用GetModuleFileName获取应用程序路径

  .\\与API函数GetModuleFileName获取应用程序目录有何不一样? 采用.\\也能获得应用程序目录,采用GetModuleFileName也能获得,二者有何不同? 一样!一个是相对路径,一个是绝对路径 .\\是的到应用程序的当前目录,但当前目录不一定等于应用程序执行文件的所在目录,一个应用程序被启动时,当前目录是可以被任意设置的.GetModuleFileName()得到模块的完整路径名,例如,你载入c:\windows\system32\a.dll,得到模块句柄h,则你可以用

javaweb-在ssh 中 用ServletActionContext获取session时启动报错

问题描述 在ssh 中 用ServletActionContext获取session时启动报错 ServletActionContext.getRequest().getSession(); 怎么才能在启动的时候就有ServletActionContext,而不用在ActionSupport处理请求时在获取 解决方案 是报空指针吗? 没有请求时 ServletActionContext.getRequest() 为null 解决方案二: http://blog.csdn.net/suncaoyo