Autore Topic: impossibile avviare browser  (Letto 600 volte)

Offline Christian Giupponi

  • Utente junior
  • **
  • Post: 128
  • Respect: 0
    • Google+
    • http://it.linkedin.com/pub/christian-giupponi/29/628/810
    • ultimoprofeta
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    ItalianDevTeam
  • Sistema operativo:
    Mac OSX Lion
impossibile avviare browser
« il: 08 Maggio 2011, 20:29:49 CEST »
0
Ciao,
volevo fare in modo che al tocco di una ImageView si avviase il browser con un url specifico...purtroppo però l'applicazione crasha al tocco...

questo è l'errore nel logcat:
Codice: [Seleziona]
05-08 20:25:39.432: ERROR/AndroidRuntime(463): Uncaught handler: thread main exiting due to uncaught exception
05-08 20:25:39.442: ERROR/AndroidRuntime(463): java.lang.IllegalStateException: Could not execute method of the activity
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at android.view.View$1.onClick(View.java:2031)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at android.view.View.performClick(View.java:2364)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at android.view.View.onTouchEvent(View.java:4179)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at android.view.View.dispatchTouchEvent(View.java:3709)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at android.os.Looper.loop(Looper.java:123)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at android.app.ActivityThread.main(ActivityThread.java:4363)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at java.lang.reflect.Method.invokeNative(Native Method)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at java.lang.reflect.Method.invoke(Method.java:521)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at dalvik.system.NativeStart.main(Native Method)
05-08 20:25:39.442: ERROR/AndroidRuntime(463): Caused by: java.lang.reflect.InvocationTargetException
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at com.stilogo.milanoelectionday.Risultato.avviaBrowser(Risultato.java:82)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at java.lang.reflect.Method.invokeNative(Native Method)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at java.lang.reflect.Method.invoke(Method.java:521)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at android.view.View$1.onClick(View.java:2026)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     ... 20 more
05-08 20:25:39.442: ERROR/AndroidRuntime(463): Caused by: java.lang.SecurityException: ConnectivityService: Neither user 10028 nor current process has android.permission.ACCESS_NETWORK_STATE.
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at android.os.Parcel.readException(Parcel.java:1218)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at android.os.Parcel.readException(Parcel.java:1206)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at android.net.IConnectivityManager$Stub$Proxy.getActiveNetworkInfo(IConnectivityManager.java:239)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at android.net.ConnectivityManager.getActiveNetworkInfo(ConnectivityManager.java:195)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     at com.stilogo.milanoelectionday.Risultato.isOnline(Risultato.java:104)
05-08 20:25:39.442: ERROR/AndroidRuntime(463):     ... 24 more

e questa la parte di codice che controlla (o almeno dovrebbe controllare) la connessione:
Codice (Java): [Seleziona]
/*
         *      Questo metodo mi permette di avviare il browser
         */

        public void avviaBrowser(View v){
                if(isOnline()){
                        try{
                       
                                String url = "http://www.sito.it";
                                Intent i = new Intent(Intent.ACTION_VIEW);
                                i.setData(Uri.parse(url));
                                startActivity(i);
                        }
                        catch(Exception e){
                               
                        }
                }
                else{
                        chiediAlert("Non è presente nessuna connessione");
                }
        }
       
        /*
         *      Metodo che mi permette di verificare la presenza di una connessione
         */

        public boolean isOnline() {
            ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo ni = cm.getActiveNetworkInfo();
            if (ni!=null && ni.isAvailable() && ni.isConnected()) {
                return true;
            } else {
                return false;
            }
        }

e questi i permessi nel manifest:
Codice (XML): [Seleziona]
<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

mi sapete dire cosa c'è di sbagliato?  :D

EDIT:

ho risolto con una WebView
Codice (Java): [Seleziona]
WebView mWebView;
mWebView = new WebView(this);
mWebView.getSettings().setJavaScriptEnabled(true);
setContentView(mWebView);
mWebView.loadUrl("http://www.example.it");
« Ultima modifica: 09 Maggio 2011, 22:11:22 CEST da ultimoprofeta »