SORU
13 EKİM 2009, Salı


Nasıl Android üzerinde internet erişimi kontrol etmek için? İnetAddress asla zaman aşımı...

Ağ ana bilgisayar adı için erişim kontrol için beklenen bir AsyncTask var. Ama doInBackground() asla zaman aşımına uğradı. Herkes bir ipucu var mı?

public class HostAvailabilityTask extends AsyncTask<String, Void, Boolean> {

    private Main main;

    public HostAvailabilityTask(Main main) {
        this.main = main;
    }

    protected Boolean doInBackground(String... params) {
        Main.Log("doInBackground() isHostAvailable():" params[0]);

        try {
            return InetAddress.getByName(params[0]).isReachable(30); 
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return false;       
    }

    protected void onPostExecute(Boolean... result) {
        Main.Log("onPostExecute()");

        if(result[0] == false) {
            main.setContentView(R.layout.splash);
            return;
        }

        main.continueAfterHostCheck();
    }   
}

CEVAP
24 EKİM 2010, Pazar


@Eddie. Sadece bir küçük değişiklik your solution - eğer cihaz uçak modunda (ya da muhtemelen diğer durumlarda yok kullanılabilir ağ), cm.getActiveNetworkInfo() null, böylece ihtiyacınız Ekle null kontrol edin.

Modifiye çözüm aşağıda:

public boolean isOnline() {
    ConnectivityManager cm =
        (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    return netInfo != null && netInfo.isConnectedOrConnecting();
}

Ayrıca AndroidManifest.xml aşağıdaki izin ekleyin:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Eğer kesinlikle zaman içinde belirli bir noktada ağ bağlantısı gerekiyorsa bir husus daha, o zaman daha iyi netInfo.isConnectedOrConnecting yerine netInfo.isConnected() kullanmak için olabilir. Bu indivudal-case kullanımı ancak sanırım.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bad Lip Reading

    Bad Lip Read

    22 Mart 2011
  • FullMag

    FullMag

    15 ŞUBAT 2007
  • Liz Morgan

    Liz Morgan

    4 Aralık 2011