Android 照相机和多媒体资料具有相同的软件包名称

Android 照相机和多媒体资料具有相同的软件包名称,android,camera,gallery,launcher,Android,Camera,Gallery,Launcher,我正在开发一个启动器应用程序。我注意到照相机和gallery有相同的软件包名称,Google+和照片也有相同的软件包名称。当我尝试启动照相机/图库时,它会打开图库;当我尝试启动照片/Google+时,我会打开Google+ 我正在使用此代码获取应用程序列表 Intent i = new Intent(Intent.ACTION_MAIN, null); i.addCategory(Intent.CATEGORY_LAUNCHER); List<ResolveInfo> availab

我正在开发一个启动器应用程序。我注意到照相机和gallery有相同的软件包名称,Google+和照片也有相同的软件包名称。当我尝试启动照相机/图库时,它会打开图库;当我尝试启动照片/Google+时,我会打开Google+

我正在使用此代码获取应用程序列表

Intent i = new Intent(Intent.ACTION_MAIN, null);
i.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> availableActivities = manager.queryIntentActivities(i, 0);

虽然它们具有相同的包名,但名称不同,请尝试此操作以启动“活动”,使用下面的代码启动“活动”

 Intent localIntent = new Intent();
    localIntent.setComponent(new ComponentName(
            localResolveInfo.activityInfo.packageName,
            localResolveInfo.activityInfo.name));
    localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    try
    {
        startActivity(localIntent);
    } catch (ActivityNotFoundException localActivityNotFoundException)
    {
        Toast.makeText(mContext, "Package not found!", 0).show();
    }

很高兴这对你有帮助:)
 Intent localIntent = new Intent();
    localIntent.setComponent(new ComponentName(
            localResolveInfo.activityInfo.packageName,
            localResolveInfo.activityInfo.name));
    localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    try
    {
        startActivity(localIntent);
    } catch (ActivityNotFoundException localActivityNotFoundException)
    {
        Toast.makeText(mContext, "Package not found!", 0).show();
    }