Cómo llamar a la calculadora de Android en mi aplicación para todos los teléfonos

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

Los trabajos anteriores sólo para HTC

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

Las obras anteriores para S3

Necesito un código que funcione para todos ellos. Alguien con alguna pista? Por favor, dé un ejemplo de código

Puede probar como calculator predeterminada en todos los dispositivos de Android:

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

Y ahora puedes lanzar la aplicación de la calculadora como:

 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 } 

Y para Api> = 15 , puedes usar

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

Tendrás que comprobar si el nombre del paquete de la calculadora predeterminada (com.android.calculator2) está disponible con esto:

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

Samsung utiliza una gran cantidad de aplicaciones preinstaladas con TouchWiz que no están disponibles en Android stock. Por lo tanto, si obtiene una Excepción en lo anterior, puede comprobar si la calculadora de Samsung está disponible. Btw Creo que com.android.calculator2 no es específico de HTC.

  • Android google play juegos seleccionar actividad para iniciar cuando se hace clic en la notificación
  • Diferencia entre el inicio de la categoría y el lanzador de categorías
  • Error GINGERBREAD no se puede resolver o no es un campo
  • ¿ActividadNotFoundException?
  • Recursos de Android $ NotFoundException
  • Android Cómo pasar LinkedHashMap entre las actividades?
  • Llamar al método MainActivity de otras clases (que amplían el receptor de difusión)
  • El gestor de paquetes ha muerto
  • Cómo establecer FileProvider para el archivo en el directorio de caché externo
  • El envío por correo electrónico de texto con formato HTML solo funciona con el cliente de Gmail
  • El método Onclick no funciona en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.