Si creo una aplicación que depende de otra aplicación o aplicaciones (por ejemplo, las aplicaciones de Facebook y Twitter), pero no están instaladas, ¿existe algún método para verificar esas dependencias e instalarlas al mismo tiempo que mi propia aplicación? ?¿Cómo hacer una aplicación de Android que dependa de otra aplicación?
Respuesta
Lo hice en mi aplicación que requiere la aplicación del escáner zxing para ser instalado. Le harán falta dentro de su onclick o ontouch:
try{
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.setPackage("com.google.zxing.client.android");
startActivityForResult(intent, 0);
} catch (Exception e) {
createAlert("Barcode Scanner not installed!", "This application uses " +
"the open source barcode scanner by ZXing Team, you need to install " +
"this before you can use this software!", true);
}
que exige
public void createAlert(String title, String message, Boolean button) {
// http://androidideasblog.blogspot.com/2010/02/how-to-add-messagebox-in-android.html
AlertDialog alertDialog;
alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle(title);
alertDialog.setMessage(message);
if ((button == true)) {
alertDialog.setButton("Download Now",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Intent browserIntent = new Intent(
Intent.ACTION_VIEW,
Uri.parse("market://search?q=pname:com.google.zxing.client.android"));
startActivity(browserIntent);
}
});
}
alertDialog.show();
}
A continuación, después de clasificar a cabo todo ese código a cabo me di cuenta de que pidió que sea instalado en el mismo tiempo que su aplicación. No estoy seguro si debería publicar este código, pero puede ser útil
inicio de esta:
Intent mediaIntent = new Intent("com.example.intent.action.NAME");
// add needed categories
List<ResolveInfo> listResolveInfo = getPackageManager().queryIntentServices(mediaIntent, 0);
if (listResolveInfo.size() != 0) {
//normal behavior
} else {
//install what you need
}
te dan ejemplo de consulta de los servicios. Si desea verificar actividades, llamará a queryIntentActivities().
Respuesta corta: No, no puede instalar automáticamente otras aplicaciones como dependencias.
Respuesta larga:
Android Market no permite que se declara otras aplicaciones para instalar como una dependencia. Como sistema, Market parece estar diseñado para instalaciones de aplicaciones únicas, no para gráficos de megadependencias de estilo de distro de Linux.
En tiempo de ejecución, se puede prueba para las aplicaciones instaladas y despejar el usuario a través del Mercado de ser así. Vea las técnicas sugeridas por @QuickNick (prueba si una aplicación está instalada) y @TerryProbert (punting to market) si eso es lo que desea.
Su mejor opción es probablemente diseñar su aplicación para degradar con gracia si las dependencias no están disponibles, y sugerir (o insistir) que se dirijan al mercado para instalarlas.
Creo que seguir el patrón descrito en esta publicación en el blog para desarrolladores de Android te ayudará. http://android-developers.blogspot.com/2009/01/can-i-use-this-intent.html Como TerryProbert señala si sabe que la intención no está disponible, le pedirá al usuario que instale la aplicación que falta.
Esto es lo que utilizo para devolver la primera actividad misión que existe:
try {
Class<?> missionClass = Class.forName(mPackageName+".Mission"+mission);
Method missionDescription;
missionDescription = missionClass.getMethod("missionDescription");
mMissionDescription = (String) missionDescription.invoke(null);
if (mMissionDescription.length() > 0) {
nextMission = mission;
break;
}
} catch (Exception e) {
//DEBUG*/Log.v(this.getClass().getName(), "onResume: Mission no "+mission+" not found: "+e.getMessage());
}
Cada misión se lleva a cabo en una clase separada, derivado de una clase base Misión. Las clases derivadas se llaman Mission1, Mission24, etc.
No se definen todas las misiones.
La clase base tiene una clase de descripción de misión abstracta que devuelve una cadena que describe la misión.
Este código está dentro de un bucle así que prueba la misión = 1 a 99, tratando de llamar a missionDescription. Se devuelve cuando se devuelve la Descripción de la primera misión encontrada.
- 1. Cómo llamar a una aplicación Android desde otra aplicación Android
- 2. ¿Cómo hacer que una aplicación se ejecute continuamente en Android?
- 3. ¿Cómo construir una aplicación de prueba de Android con una dependencia de otra aplicación usando hormiga?
- 4. iniciar actividad de otra aplicación Android
- 5. Android: actividad de llamada de otra aplicación
- 6. Cómo hacer que mi aplicación para Android aparecen en la lista de parte de otra aplicación específica
- 7. Cómo hacer que la aplicación de Android se actualice automáticamente
- 8. android: ¿cómo abro otra aplicación desde mi aplicación?
- 9. Android: Recuperando preferencias compartidas de otra aplicación
- 10. ¿Cómo cerrar otra aplicación en Android?
- 11. ¿Cómo hacer que la tarea dependa de otra en sbt 0.12?
- 12. Cómo hacer: comandos de voz en una aplicación de Android
- 13. Llamar a una aplicación desde otra aplicación
- 14. ¿Cómo puedo hacer que un módulo Maven dependa de otro?
- 15. Cómo hacer una aplicación de radio FM en Android
- 16. ¿Cómo hacer una aplicación de chat en Android?
- 17. ¿Cómo hacer una aplicación de relieve en Android?
- 18. Hacer que la aplicación para Android escuche enlaces compartidos
- 19. Android: detecta que otra aplicación ha comenzado a reproducir audio
- 20. ¿Cómo puedo detener el servicio de otra aplicación en Android?
- 21. Android Enlace a Market desde otra aplicación
- 22. Cómo informarle al usuario que necesita instalar otra aplicación de la que depende mi aplicación
- 23. ¿Hay alguna manera de hacer que la nulabilidad de una columna dependa de la capacidad de anulación de otra columna?
- 24. ¿Es posible obtener datos de otra aplicación en Android?
- 25. Ejecutar aplicación de consola desde otra aplicación de consola
- 26. ¿Cómo hacer una aplicación móvil DLNA para Android?
- 27. Obtención de recursos de otra aplicación
- 28. ¿Cómo hacer que una aplicación GPO esté al tanto?
- 29. ¿Cómo detectar cuando el usuario inicia otra aplicación? (Android)
- 30. ¿Cómo obtener el ícono de otra aplicación?
No creo que solo deba atrapar "Excepción" que es un poco amplia, captar la instancia de Excepción real probablemente sea mejor. – AGrunewald
@AGrunewald Estoy completamente de acuerdo! :) A veces soy excepcionalmente perezosa – TerryProbert