Как вызвать калькулятор Android в моем приложении для всех телефонов

public static final String CALCULATOR_PACKAGE ="com.android.calculator2"; public static final String CALCULATOR_CLASS ="com.android.calculator2.Calculator"; Intent intent = new Intent(); intent.setAction(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); intent.setComponent(new ComponentName( CALCULATOR_PACKAGE, CALCULATOR_CLASS)); 

выше работает только для HTC

  public static final String CALCULATOR_PACKAGE ="com.sec.android.app.popupcalculator"; public static final String CALCULATOR_CLASS ="com.sec.android.app.popupcalculator.Calculator"; 

вышеупомянутые работы для S3

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

вы можете попробовать установить calculator по умолчанию на всех устройствах Android:

 ArrayList> items =new ArrayList>(); final PackageManager pm = getPackageManager(); List packs = pm.getInstalledPackages(0); for (PackageInfo pi : packs) { if( pi.packageName.toString().toLowerCase().contains("calcul")){ HashMap map = new HashMap(); map.put("appName", pi.applicationInfo.loadLabel(pm)); map.put("packageName", pi.packageName); items.add(map); } } 

и теперь вы можете запустить приложение калькулятора как:

 if(items.size()>=1){ String packageName = (String) items.get(0).get("packageName"); Intent i = pm.getLaunchIntentForPackage(packageName); if (i != null) startActivity(i); } else{ // Application not found } 

А для Api> = 15 вы можете использовать

 Intent intent = new Intent(); intent.setAction(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_APP_CALCULATOR); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); 
 Intent i = new Intent(); i.setAction(Intent.ACTION_MAIN); i.addCategory(Intent.CATEGORY_APP_CALCULATOR); startActivity(i); 

Вам нужно будет проверить, доступно ли имя пакета калькулятора по умолчанию (com.android.calculator2):

 try{ ApplicationInfo info = getPackageManager() .getApplicationInfo("com.android.calculator2", 0 ); } catch( PackageManager.NameNotFoundException e ){ //application doesn't exist } 

Samsung использует множество приложений, предустановленных с TouchWiz, которые недоступны на складе Android. Поэтому, если вы получаете исключение из вышесказанного, вы можете проверить, доступен ли калькулятор Samsung. Кстати, я думаю, что com.android.calculator2 не является специфичным для HTC.

Ну, это модифицированный ответ @ ρяσѕρєя K, потому что он отлично работает на мобильных телефонах Samsung, и только пакеты имеют «calc», но не все мобильные телефоны, такие как HTC AND LENOVO ETC

А для Api> = 15, вы можете использовать НО !!!

  Intent intent = new Intent(); intent.setAction(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_APP_CALCULATOR); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); 

ЭТО МОЖЕТ ПРИВЕСТИ К ОШИБКЕ, КАК ЭТО

android.content.ActivityNotFoundException: Никакой активности не найдено для обработки Intent {act = android.intent.action.MAIN cat = [android.intent.category.APP_CALCULATOR] flg = 0x10000000}

СОБЫТЬ ВЗГЛЯД НА ЭТО

ЗАГРУЗИТЬ все приложения в Array

  // Declare universal if you want Access any where from scope ArrayList> items; PackageManager pm ; List packs; // initialise From Oncreate if you want items =new ArrayList>(); pm = getPackageManager(); packs = pm.getInstalledPackages(0); for (PackageInfo pi : packs) { HashMap map = new HashMap(); map.put("appName", pi.applicationInfo.loadLabel(pm)); map.put("packageName", pi.packageName); items.add(map); } 

ЭТО ТРЕТЬЯ ЧАСТЬ Мы проходим через все приложения, чтобы получить имя приложения или совпадение «Калькулятор»,

 public void opencalculator(){ int d=0; if(items.size()>=1){ int j=0; for(j=0;j 

CALL OPENCALCULATOR

 opencalculator(); 
  • «Оценить это приложение» - ссылка в приложении Google Play Store на телефоне
  • Простой пример для Intent и Bundle
  • Как использовать намерение для выбора файлового браузера для выбора файла
  • Успешное намерение совместного использования для Android
  • Как открыть личные файлы, сохраненные во внутреннем хранилище с помощью Intent.ACTION_VIEW?
  • Отправить SMS с помощью намерения
  • Как вы можете проверить, оценил ли пользователь ваше приложение в Google Play?
  • LinkedList, помещенный в Intent extra, перерабатывается в ArrayList при получении в следующем действии
  • как мы можем использовать startActivityforResult () для намерения электронной почты?
  • Не удалось запустить служебный
  • Прочитать pdf-файл из папки с данными
  • Interesting Posts

    Почему логика типа F # настолько непостоянна?

    Как я могу уменьшить изображение моей VMware?

    Как написать код для создания sharedpreferences для массива в android?

    Свойства CSS: отображение и видимость

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

    Параллельный wget в Bash

    Есть ли какие-либо сочетания клавиш для виртуальных рабочих столов для разработчиков Windows 10 («Просмотр задачи»)?

    Есть ли функция для разделения строки в PL / SQL?

    Ввод формы входа в систему django на каждой странице

    char! = (знак char), char! = (unsigned char)

    Как отключить автоматическое повторное добавление нежелательной раскладки клавиатуры в Windows 10?

    Сложны ли зависимости круговых classов от стиля стиля кодирования?

    Как отключить широковещательные сообщения на моем сеансе linux?

    Если async-wait не создает никаких дополнительных streamов, то как это реагирует на приложения?

    Выполнение системного вызова, возвращающего вывод stdout в виде строки

    Давайте будем гением компьютера.