/** * get the launcher activity class full name of an application by the package name * * @param context * the context of current application * @param packageName * the package name of the application (it can be any application) * @return */ public static String getLauncherActivityNameByPackageName(Context context, String packageName) { String className = null; Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);//android.intent.action.MAIN resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);//android.intent.category.LAUNCHER resolveIntent.setPackage(packageName); List<ResolveInfo> resolveinfoList = context.getPackageManager().queryIntentActivities(resolveIntent, 0); ResolveInfo resolveinfo = resolveinfoList.iterator().next(); if (resolveinfo != null) { className = resolveinfo.activityInfo.name; } return className; }
?该方法可以通过某个应用的包名找到该应用中的默认启动类
<activity android:name="com.fly.aty.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
?如上,将AndroidManifest.xml中的包名传入第二个参数则可以得到com.fly.aty.MainActivity