2013-09-07 6 views
-1

Je fais un projet où je dois appeler un navigateur via mon application Android, mais quand je l'appelle, l'application s'arrête.Comment ouvrir le navigateur dans l'application android?

le code peut être trouvé ici: https://github.com/coppetti/android-pulsometer

mais pour une vue rapide, j'ai une classe "Pulsometro" où

public void onPreviewFrame(byte[] data, Camera cam) { 
... 
Browser browser = new Browser(); 
browser.callBrowser(beats); 

return; 
... 
} 

et une classe de navigateur où:

public class Browser extends Activity{ 
    public void callBrowser(int beats){ 
     String url = "http://www.higia.info/?q="+beats; 
     Intent i = new Intent(Intent.ACTION_VIEW); 
     i.setData(Uri.parse(url)); 
     startActivity(i); 

     return; 
     } 
} 

Il y a un moyen d'appeler un navigateur et mon application ne casse pas?

+0

Remarque: vous n'avez pas besoin d'un 'retour,' à la fin d'une méthode en java. – tilpner

+0

Oui, j'ai essayé de revenir pour voir si ça marche ou pas .. même sans elle, casse ... – coppettim

+1

Nous aurons besoin d'un stacktrace (du logcat), pour analyser les "breaks" ... – tilpner

Répondre

0

Ne choisissez pas uniquement des superclasses au hasard. Ne créez pas seulement une sous-classe de Activity et attendez-vous à ce que cela fonctionne.

Déplacez votre callBrowser() méthode dans une implémentation réelle Activity, et se débarrasser de Browser entièrement.

Ou, retirez la superclasse de Browser, ont callBrowser() prendre un Context comme paramètre, et appeler startActivity() sur ce Context.

0

Essayez cette classe. Appelez la méthode callBrowser et donnez-la et Activity pour le paramètre context.

public class Browser{ 
public void callBrowser(Context context, int beats){ 
    String url = "http://www.higia.info/?q="+beats; 
    Intent i = new Intent(Intent.ACTION_VIEW); 
    i.setData(Uri.parse(url)); 
    context.startActivity(i); 
    } 
} 
+0

Ou, comme Commonsware l'a suggéré, supprimez complètement 'Browser' et créez une méthode dans une véritable' Activity'. Ou vraiment, si c'est tout ce que vous faites dans la méthode callBrowser, ne créez même pas une nouvelle méthode, le code est trop simple. –

1

Essayez ceci:

protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
} 

public void onOpenWebBrowser(View v) 
{ 
Intent webPageIntent = new Intent(Intent.ACTION_VIEW); 
webPageIntent.setData(Uri.parse("https://www.google.co.in/")); 

try { 
      startActivity(webPageIntent); 
} catch (ActivityNotFoundException ex) { 

} 
} 
Questions connexes