2011-12-23 8 views
6

Ho un app che è il browser di lancio per la via successiva:Come rilevare l'attività del browser?

Uri uri = Uri.parse(getURL()); 
    Context context = widget.getContext(); 
    Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
    intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName()); 
    context.startActivity(intent); 

ho un altro progetto AndroidJUnit in cui voglio prendere tale attività.

Con i passaggi successivi riesco a catturare MYProjectActivity, che sta eseguendo il browser, ma non sono riuscito a catturare il browser.

Instrumentation instrumentation = getInstrumentation(); 

    // Register we are interested in the authentication activiry... 
    Instrumentation.ActivityMonitor monitor = instrumentation.addMonitor(MYProjectActivity.class.getName(), null, false); 

    // Start the authentication activity as the first activity... 
    Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    intent.setClassName(instrumentation.getTargetContext(), MYProjectActivity.class.getName()); 
    instrumentation.startActivitySync(intent); 

    // Wait for it to start... 
    Activity currentActivity = getInstrumentation().waitForMonitorWithTimeout(monitor, 5); 

Qualcuno sa come farlo?

+0

Ho tentato di avviare il browser con un ActivityMonitor passando un IntentFilter anziché una classe al metodo addMonitor() e utilizzando Intent.ACTION_VIEW in IntentFilter. Non ha funzionato nel mio codice, ma penso che sia causato da qualche altro problema, quindi forse funziona per te. –

+0

Jan, Grazie per la risposta

risposta

0

io non sono sicuro di come monitorare il browser come si richiede, ma che offre un pensiero alternativo:

è necessario pesare che cosa i vostri motivi sono per l'utilizzo del browser, ma hai considerato utilizzando un WebView invece ? Ti consente un maggiore controllo in quanto puoi metterlo in un'attività e osservare il traffico degli intenti e WebView della sottoclasse per informazioni più dettagliate sul callback, se necessario.

Problemi correlati