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.

  • Uso de 2 o más servicios de intención GCM en una aplicación
  • Realmente no obtener setResult y onActivityResult
  • Firefox para Android no inicia la aplicación cuando se hace clic en el enlace
  • Cómo utilizar Intent.ACTION_APP_ERROR como medio para un marco de "retroalimentación" en Android?
  • Compruebe si hay un BroadCastReceiver registrado con una cadena de acción
  • La imagen adjunta de Android al correo electrónico no funciona
  • Usando intentos para pasar datos entre actividades en android
  • Cómo utilizar la intención en la clase no actividad
  • Pasar datos de un fragmento a otro
  • ¿Qué es Intent de onActivityResult Parámetros?
  • Solicitar actividad predeterminada sin abrir realmente la actividad
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.