【问题标题】:Camera and Gallery has same package name相机和图库具有相同的包名
【发布时间】:2016-08-25 06:09:39
【问题描述】:

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

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

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

至于相机,我知道当应用名称为相机且包名称为画廊名称时,我可以使用 Intent 启动相机,但可能有很多应用具有相同的功能。是否有适用于所有应用的通用解决方案?

P.S.:这就是我获取应用信息的方式

for(ResolveInfo ri : availableActivities) {
    AppItem app = new AppItem();
    app.setLabel(ri.loadLabel(manager));
    app.setName(ri.activityInfo.packageName);
    quick_apps.add(app);
}

【问题讨论】:

    标签: android camera gallery launcher


    【解决方案1】:

    虽然包名相同,但名称不同,试试这个启动你的activity,使用下面的代码启动activity

     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();
        }
    

    【讨论】:

    • 很高兴这对你有帮助:)
    猜你喜欢
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    • 2014-08-25
    • 2016-05-03
    • 2017-09-30
    • 2011-10-16
    • 2015-07-18
    相关资源
    最近更新 更多