2011-12-23 37 views
11

Nella mia applicazione c'è il layout delle schede. e due schede.Come avviare app Android all'interno della mia applicazione in Android?

  • scheda 1 - la mia app enter image description here
  • scheda 2 - qualsiasi applicazione Android al di fuori (come contatti, chiamare dialer ecc ..) (so come lanciare applicazione al di fuori, ma la sua non in esecuzione all'interno della mia applicazione (significa che la scheda non verrà visualizzata dopo l'avvio di )).

Grazie in anticipo

+0

Leggi la classe Intent e scopri quali azioni sono e risolverete il problema. Non ti daremo la risposta. Comprendi il modo in cui funziona il sistema di intenzioni di Android e poi sarà sugo. – JoxTraex

+5

@JoxTraex È possibile per quello che sta chiedendo? allora devo leggere Intent di nuovo – ingsaurabh

+0

è possibile tat? Ne dubito . È possibile eseguire un'altra applicazione dall'applicazione, ma eseguirla all'interno di una vista generata dalla prima app? –

risposta

0

lettura doc (sezione intento), alcuni esempi:

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

forse ho frainteso questo, ma se non hai creato esplicito intents (ha lavorato con l'altro sviluppatore di app o creato l'altra app che desideri incorporare) non sarà possibile.

Ogni corre Android app in una sandbox: http://developer.android.com/guide/topics/security/security.html

In particolare:

Perché sabbiere Android applicazioni le une dalle altre, le applicazioni devono condividere risorse e dati in modo esplicito. Lo fanno dichiarando le autorizzazioni necessarie per funzionalità aggiuntive non fornite da sandbox di base. Le applicazioni dichiarano staticamente le autorizzazioni richieste e il sistema Android richiede all'utente il consenso allo al momento dell'applicazione installata. Android non ha alcun meccanismo per la concessione delle autorizzazioni dinamicamente (in fase di esecuzione) perché complica lo dell'esperienza utente a scapito della sicurezza.

Pertanto questo non sarebbe possibile. Sembra fuorviante o malizioso per cominciare, ma vorrei seriamente riconsiderare il tuo approccio e ripensare i benefici ponderati contro l'improbabilità di riuscire a ottenere ciò che chiedi.

+1

Bella esplorazione ..... –

1

A mio parere questo non è possibile.

È possibile visualizzare le proprie attività solo all'interno di TabHost. Per le attività esterne è necessario un intento implicito, ma non supporta questo: Embed external Intent in main Activity

Pertanto, è possibile visualizzare i dati da un'applicazione esterna nella propria attività. Esegui questa operazione, interroghi il provider di contenuti fornito dall'altra applicazione (vedi http://developer.android.com/guide/topics/providers/content-providers.html) nell'attività dell'elenco (vedi un esempio completo su http://developer.android.com/reference/android/app/ListActivity.html) e includi questo ListActivity nel TabHost.

Problemi correlati