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
- Comparación del uso del reconocimiento de voz en Android: por Intent o on-thread?
- La eliminación de una entrada de un paquete (es decir, extras) no parece funcionar en combinación con el botón de retroceso
- Cómo utilizar la intención en la clase no actividad
- Problema con la Iniciativa Web de Android
- Uso de Intent en una aplicación de Android para mostrar otra actividad
Necesito un código que funcione para todos ellos. Alguien con alguna pista? Por favor, dé un ejemplo de código
- Teclado Android aún visible después de lanzar el intento de correo electrónico
- Android: ¿puedo pasar un parámetro al iniciar otras aplicaciones de mi aplicación?
- ¿Cómo puedo compartir varios archivos a través de un intento?
- Android AsyncTask: inicia nueva Actividad en onPostExecute ()
- Abrir la actividad de Android en una nueva tarea sin usar android: launchMode = "singleTask"
- BroadcastReceiver con múltiples filtros o BroadcastReceivers múltiples?
- Cerrar sesión desde la aplicación Android
- Objetivo de la llamada en Android
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.
- Cambiar la orientación de la pantalla – Android 3.2 en VirtualBox
- ¿Cómo hago una consulta insensible a mayúsculas con ContentResolver en Android?