SORU
29 Mart 2013, Cuma


Yayın android uygulaması kontrol ınternet bağlantısı için alıcı

Merhaba internet bağlantısı kontrol etmek için android yayın alıcısı geliştiriyorum.

Ama sorun benim iki kez alıcı yayın.

İkinci olarak, ağ kullanılabilir adı almak istiyorum. Eğer kullanılamaz ise, yazılı vermeyeceğim.

Bu yayın alıcısı

public class NetworkChangeReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(final Context context, final Intent intent) {
        final ConnectivityManager connMgr = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);

        final android.net.NetworkInfo wifi = connMgr
                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);

        final android.net.NetworkInfo mobile = connMgr
                .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

        if (wifi.isAvailable() || mobile.isAvailable()) {
            // Do something

            Log.d("Netowk Available ", "Flag No 1");
        }
    }
}

Bu manifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.broadcastreceiverforinternetconnection"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <receiver android:name=".NetworkChangeReceiver" >
            <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
                <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
            </intent-filter>
        </receiver>
    </application>

</manifest>

CEVAP
29 Mart 2013, Cuma


İlk ans: yayın alıcısı iki kez çünkü

Ağ bağlantısı olarak değiştirmek için dinleme için iki <intent-filter> eklediniz

<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

Wifi devlet için de, değiştirmek "<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />"

bu yüzden sadece birini kullanın <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> ilk sorun çözülecektir. (yerine alıcı iki kez bağlantı bir kez aradı değişim) arayın. Daha fazla ayrıntı görmek için: http://stackoverflow.com/a/15546897/1168654

İkinci cevabın: (alıcı ınternet bağlantısı varsa, yalnızca bir kez aramak istediğiniz.)

http://stackoverflow.com/a/15546897/1168654 kodunuzu referans mükemmel. ınternet olduğunda sizi haberdar ediniz

GÜNCELLEME

Eğer sadece mobil internet ile bağlı olup olmadığını kontrol etmek istiyorsanız bu yöntem bağlantınızı kontrol etmek için kullanabilirsiniz.

public boolean isOnline(Context context) {

    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    //should check null because in air plan mode it will be null
    return (netInfo != null && netInfo.isConnected());

}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ben Schoon

    Ben Schoon

    23 Kasım 2012
  • Jimmie Jones

    Jimmie Jones

    16 Kasım 2007
  • Tinkernut

    Tinkernut

    28 Aralık 2006