मेरे ऐप में इंटरनेट कनेक्शन की जांच करने का प्रयास कर रहा है। मेरे प्रकट की एक कोड है:ब्रॉडकास्ट रिसीवर दो बार
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<receiver android:name=".MyReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>
और वहाँ एक हैंडल वर्ग है:
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction() != null && intent.getAction().equals("android.net.conn.CONNECTIVITY_CHANGE"));
{
Log.d("myLogs", "Network connectivity change");
if (intent.getExtras() != null) {
NetworkInfo ni = (NetworkInfo) intent.getExtras().get(
ConnectivityManager.EXTRA_NETWORK_INFO);
if (ni != null && ni.getState() == NetworkInfo.State.CONNECTED) {
Log.i("myLogs", "Network " + ni.getTypeName() + " connected");
}
}
if (intent.getExtras().getBoolean(
ConnectivityManager.EXTRA_NO_CONNECTIVITY, Boolean.FALSE)) {
Log.d("myLogs", "There's no network connectivity");
}
}
}
}
मेरी Logcat में मैं एक तरह एक तस्वीर मिल:
04-11 23:24:48.021: D/myLogs(10261): Network connectivity change
04-11 23:24:48.021: I/myLogs(10261): Network WIFI connected
04-11 23:24:48.202: D/myLogs(10261): Network connectivity change
04-11 23:24:48.202: I/myLogs(10261): Network WIFI connected
तो, रिसीवर दो बार बुलाया जाता है। क्यूं कर? सभी प्रकार के कनेक्शन के साथ कुछ समस्या है।
शायद कनेक्ट होने के विभिन्न स्तर हैं, और आपके 2 लॉग 2 अलग-अलग उप-राज्य हैं। मैं यह देखने के लिए और अधिक जानकारी दूंगा कि वे कैसे भिन्न होते हैं। –
लॉग इन करने का प्रयास करें 'अगर (netinfo! = अशक्त && netInfo.isConnected()) { \t \t \t \t \t Log.i (" myLogs "," नेटवर्क "+ netinfo।GetTypeName() + "कनेक्ट"); \t \t \t} ' Have विचार दो उप राज्य देखते हैं कि - isConnecting और isConnected, लेकिन एक ही समस्या/ – Sunstrike