2010-11-22 8 views
0

İnterneti kullanan Uygulama üzerinde çalışıyorum.Android içinde Internet Bağlantısı

  • URL'den XML ayrıştırma içerir. ,
  • İlerleme İletişimini Gösterme zaman ayrıştırılırken.
  • Ayrıştırma tamamlandığında iletişim kutusunu durdur.
  • ListView'de TEXT (Veri) öğesini ayarlayın.

Sorun şu ki, Cihaz internete bağlıyken Apps uygulamasından daha iyi çalışıyor Ancak Cihaz İnternet'e bağlı değilken "İlerleme Durumu" sonsuza dek çalışıyor.

Aygıt İnternet veya kablosuz ağa bağlı değilse iletişim kutusunu durdurmak istiyorum. bu nasıl yapılır?
Herhangi bir fikrin var mı? Üzgünüm çocuklar .... Fikrimi değiştirdiğimde butona tıkladığımda internet bağlantısını kontrol etmek istiyorum. ne ben şimdiye kadar is çalıştık ..

public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.homelayout); 
     mclip = (ImageButton) findViewById(R.id.clip); 
     mclip.setClickable(true); 
     mclip.setFocusable(true); 

     mclip.setOnClickListener(new OnClickListener() { 

      public void onClick(View view) { 
       ConnectivityManager cm = (ConnectivityManager)    getSystemService(Context.CONNECTIVITY_SERVICE); 
       NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
       if (netInfo != null && netInfo.isConnectedOrConnecting()) { 
       //if it is connected to internet than start Another Activity. 
       startActivity(new Intent(ListViewExample.this, ClipOfDay.class)); 
       } else if (netInfo == null) { 
        AlertDialog alertDialog = new AlertDialog.Builder(ListViewExample.this).create(); 
        alertDialog.setTitle("Connection Problem"); 
        alertDialog.setMessage("You are not connected to Internet"); 
        alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 

         public void onClick(DialogInterface dialog, int which) { 
          return; 
         } 
        }); 
        alertDialog.show(); 
       } 

      } 
     }); 
     } 

Ama bu i AlertDialog göstermek istiyorum daha working.if cihaz internete bağlı değil değildir. Aksi takdirde Etkinlik başlayacaktır. Bana ne yapacağımı söyleyen var mı?
Teşekkürler. İnternet veya WiFi bağlıysa

cevap

2

Kontrol ağ bağlantısı
bağlantısı

ConnectivityManager cMgr = (ConnectivityManager) con.getSystemService(Context.CONNECTIVITY_SERVICE); 
      NetworkInfo netInfo = cMgr.getActiveNetworkInfo(); 
      String status = netInfo.getState().toString(); 
      if (status.equals("CONNECTED")) { 
       //DO you work 
      } else { 
       Log.e("error", "No connection available "); 
      } 
0
  • İlk onay, o zaman, bazı istisna nedeniyle bağlantı hatalarının oluşması durumunda kodunuzu
  • kullanın deneyin yakalamak çalıştırmak catch bloğunda iletişim çıkarın.



Bu ......., bunu yapmanın bir yolu ..............
Umarım yardımcı olur olabilir

+0

Haklısınız ama nasıl kontrol edebilirim? Ben internet bağlantısı kontrol etmek hakkında hiçbir fikrim yok android için yeni. Cevap için teşekkürler. – Piyush

+1

Şunlara bakın: http: //stackoverflow.com/questions/1560788/how-to-check-internet-access-on-android-inetaddress-never-timeouts, Eddie'nin yanıtını göndermeyi deneyin – viv

1

bağlantısını kontrol etmek için bu iki yöntemlerini kullanın kontrol etmek için basit bir kod:

Context.getSystemService(Context.CONNECTIVITY_SERVICE).getNetworkInfo(ConnectivityManager.TYPE_MOBILE) 
Context.getSystemService(Context.CONNECTIVITY_SERVICE).getNetworkInfo(ConnectivityManager.TYPE_WIFI) 

daha sonra bağlantı kullanılabilir olup olmadığını öğrenmek için döndürülen sonuçları ayrıştırın. Eğer mevcutsa, sadece işleri yapın ve iletişim kutusunu yerleştirin. Alternatif olarak, iletişim kutusunu da açabilir ve herhangi bir ağ eylemi gerçekleştirmeden önce, bu yöntemlerle bağlantı olup olmadığını kontrol edebilir ve bağlantı mevcut değilse iletişim kutusunu gizleyebilir/iptal edebilir ve bir hata mesajı görüntüleyebilirsiniz. başka, ağ eylemi için gidin. ve evet, her zaman bir try-catch bloğunuz var.