2010-06-28 17 views
12

Próbuję dowiedzieć się, jak utworzyć intencję, która otworzy preferowaną przeglądarkę użytkownika bez podawania adresu URL. Wiem, jak go otworzyć, dając konkretny adres URL tak:Android zamierza otworzyć przeglądarkę preferowaną przez użytkownika

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW); 
intent.setData(android.net.Uri.parse("http://www.google.com")); 
context.startActivity(intent); 

Nie chcę, aby otworzyć przeglądarkę do dowolnej strony, w szczególności, tylko zbiór stronę lub cokolwiek strona użytkownik był na końcu. Zastanawiałem się nad ustawieniem strony domowej w aplikacji, ale nie można tego zrobić z domyślną aplikacją przeglądarki, ponieważ jest ona prywatna. Czy ktoś wie, jak to zrobić?

Odpowiedz

1

URL strony głównej określony przez użytkownika będzie przechowywany w preferencjach dotyczących dowolnej używanej przeglądarki. W przypadku aplikacji Sandbox dla aplikacji Androids nie będziesz mieć do niej dostępu, chyba że aplikacja ma dostawcę treści, który umożliwia dostęp. Ponadto dostawca treści będzie różnił się między aplikacjami przeglądarkowymi, a Ty będziesz mieć problemy z pokryciem tych, które istnieją.

Czy próbowałeś otworzyć stronę internetową, która próbuje zaktualizować adres URL strony głównej użytkownika za pomocą JavaScript?

+0

Nie, nie próbowałem tej metody, jak myślałem głównie o wykorzystaniu zamiarów. Nie jestem wielkim programistą stron internetowych, ale mimo to przyjrzę się temu! Czy są jakieś przydatne interfejsy API javascript, które mogą przejść na stronę główną? –

+0

Szukałem sposobu na odzyskanie strony głównej przeglądarki i sposobu na przejście do strony głównej przeglądarki przy użyciu javascript, ale nie miałem szczęścia. Nie sądzę, że można to zrobić. Ktoś chce mi udowodnić, że się mylę. –

9

Oto jak to zrobiłem:

String packageName = "com.android.browser"; 
String className = "com.android.browser.BrowserActivity"; 
Intent internetIntent = new Intent(Intent.ACTION_VIEW); 
internetIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
internetIntent.setClassName(packageName, className); 
mHomeActivity.startActivity(internetIntent); 

Jeśli nie masz strony domowej, będzie ona otworzyć pustą stronę (przynajmniej w Android 2.1).

2

Jest to późna odpowiedź, ale wygląda ta funkcja jest dostępna w 15 API:

Intent browser = Intent.makeMainSelectorActivity(
     Intent.ACTION_VIEW, 
     Intent.CATEGORY_APP_BROWSER); 

    startActivity(browser); 

Docs for makeMainSelectorActivity

5
  Uri uri = Uri.parse("www.google.com"); 
      Intent intent = new Intent(Intent.ACTION_VIEW,uri); 
      // Create and start the chooser 
      Intent chooser = Intent.createChooser(intent, "Open with"); 
      startActivity(chooser); 

Kod ten tworzy zamiar otworzyć użytkownika określonej przeglądarki.

+3

URl powinien mieć "http: //" w przeciwnym razie intencja nie zostanie rozpoznana –

0

Patrz artykuł szczegóły implicit intent in android

  Intent sendIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.maidofknowledge.com")); 
      Intent chooser = Intent.createChooser(sendIntent, "Choose Your Browser"); 
      if (sendIntent.resolveActivity(getPackageManager()) != null) { 
       startActivity(chooser); 
Powiązane problemy