2011-12-23 5 views
11

En mi aplicación hay diseño de pestañas. y dos pestañas.¿Cómo lanzar aplicaciones de Android dentro de mi aplicación en Android?

  • pestaña 1 - mi aplicación enter image description here
  • pestaña 2 - cualquier aplicación de Android fuera (como contactos, llamar marcador etc ..) (sé cómo poner en marcha la aplicación fuera, pero no es corriendo dentro de mi aplicación (significa que la pestaña no se mostrará después del lanzamiento de )).

Gracias de antemano

+0

Lea acerca de la clase de intención y entérese de qué acciones se trata y resolverá su problema. No te daremos la respuesta. Comprende la forma en que funciona el sistema de intención de Android y luego será salsa. – JoxTraex

+5

@JoxTraex ¿Es posible lo que está pidiendo? entonces tengo que leer Intento de nuevo – ingsaurabh

+0

¿es posible? Dudo que . ¿Puede ejecutar otra aplicación desde su aplicación pero ejecutarla dentro de una vista generada por la primera aplicación? –

Respuesta

0

doc lectura (sección intención), algunos ejemplos:

public class MyTab extends TabActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     final TabHost tabHost = getTabHost(); 

     Intent taskIntent = new Intent(this, Public.class); 
     taskIntent.putExtra(Intent.ACTION_VIEW, "public"); 

     TabHost.TabSpec tsValid = tabHost.newTabSpec("public"); 
     tsValid.setIndicator(getText(R.string.tab_title_public)); 
     tsValid.setContent(taskIntent); 

     tabHost.addTab(tsValid); 

     Intent annIntent = new Intent(this, Private.class); 
     annIntent.putExtra(Intent.ACTION_VIEW, "private"); 

     TabHost.TabSpec tsGenerate = tabHost.newTabSpec("private"); 
     tsGenerate.setIndicator(getText(R.string.tab_title_private)); 
     tsGenerate.setContent(annIntent); 

     tabHost.addTab(tsGenerate); 
    } 

} 
12

que puede haber entendido mal esto, pero a menos que haya creado explícita intents (trabajó con el otro desarrollador de aplicaciones o creó la otra aplicación que desea insertar) esto no será posible.

Cada Android se ejecuta la aplicación en un entorno limitado: http://developer.android.com/guide/topics/security/security.html

particular:

Debido salvaderas Android aplicaciones entre sí, aplicaciones deben compartir de manera explícita recursos y datos. Lo hacen al declarar los permisos que necesitan para las capacidades adicionales no proporcionadas por el sandbox básico. Las aplicaciones declaran de manera estática los permisos que requieren, y el sistema Android solicita al usuario su consentimiento al el momento en que se instala la aplicación. Android no tiene mecanismo para otorgando permisos dinámicamente (en tiempo de ejecución) porque complica la experiencia del usuario en detrimento de la seguridad.

Por lo tanto, esto no sería posible. Para empezar, parece equivocado o malicioso, pero reconsideraría seriamente su enfoque y repensaría los beneficios sopesados ​​frente a la improbabilidad de siquiera poder lograr lo que usted pide.

+1

Explicación agradable ..... –

1

En mi opinión, esto no es posible.

Solo puede mostrar sus propias actividades dentro de TabHost. Para actividades externas, necesitaría una intención implícita, pero TabHost no es compatible con esto: Embed external Intent in main Activity

Para que pueda visualizar los datos de una aplicación extranjera en su propia actividad. Haga esto, consulte el proveedor de contenido que la otra aplicación proporciona (consulte http://developer.android.com/guide/topics/providers/content-providers.html) en su actividad de lista (consulte un ejemplo completo en http://developer.android.com/reference/android/app/ListActivity.html) e inclucde este ListActivity en su TabHost.

Cuestiones relacionadas