查找要通过 Intent 启动的包名称



我们如何使应用程序具有通用性,以便能够在各种设备上启动其他应用程序?

应用在不同的设备上具有不同的包名称。所以问题是我们如何创建一个通用应用程序来调用这些应用程序,而不管它们的平台是什么?

例如,假设我的手机上安装了IMO,并希望我的应用程序能够启动IMO。或者我看到的另一个问题是画廊。我在一部手机上启动了它,但在另一部手机上的软件包名称不同!那么我们应该如何编写一个应用程序来启动其他应用程序并在大多数平台上工作呢?

感谢您的回复。问题与查找正确的应用程序名称有关。如果我想说在所有平台上启动IMO,该怎么做。Coz 在我看过的 2 部安卓手机上,它们的称呼不同!在大多数应用程序上都是如此。我正在尝试计算器。同样的事情。它们在不同的平台上不是相同的名称。我将在这里列出计算器示例:

   Intent launchIntent = 
   getPackageManager().getLaunchIntentForPackage("com.doro.apps.calculator");
    if (launchIntent != null) {
        try {
            // startActivity(launchIntent);
            startActivity(launchIntent);
        } // in case Instagram not installed in your device
        catch (ActivityNotFoundException ex) {
            ex.printStackTrace();
        }
    } else {
        Log.i("openCalCulator", "Intent is null");
    }
}

你可以看到这太具体了:com.doro.apps.calculator如果用不同的名称调用简单的计算器,我只能想象其他应用程序也会有不同的名称。

I tried using getPackageManager but youtube got started instead of calculator!
    items = new ArrayList<HashMap<String,Object>>();
    pm = getPackageManager();
    packs = pm.getInstalledPackages(0);
    for (PackageInfo pi : packs)
    {
        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("appName", pi.applicationInfo.loadLabel(pm));
        map.put("packageName", pi.packageName);
        items.add(map);
    }

最新更新