Найти имена пакетов для запуска через Intent - PullRequest
0 голосов
/ 08 января 2019

Как сделать приложение универсальным, чтобы можно было запускать другие приложения на различных устройствах?

Приложение имеет разные имена пакетов на разных устройствах. Итак, вопрос в том, как нам создать приложение Universal для вызова этих приложений независимо от их платформы?

Например, допустим, у меня на телефоне установлена ​​IMO, и я хочу, чтобы мое приложение могло запускать IMO. Или другой вопрос, который я видел, это Галерея. Я запустил его на одном телефоне, но имя пакета было другим на другом телефоне! Итак, как нам написать приложение для запуска других приложений и работать на большинстве платформ?

1 Ответ

0 голосов
/ 08 января 2019

Спасибо за ваш ответ. Вопрос связан с поиском правильного названия приложения. Если я хочу сказать, запустить IMO на всех платформах, как это сделать. Ведь на 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);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...