2014-09-05 6 views
5

मैं एक छवि गैलरी ऐप पर काम कर रहा हूं, जिसमें एप्लिकेशन इंटरनेट से छवियों को पुनर्प्राप्त कर रहा है।उपयोगकर्ता से इंटरनेट से कनेक्ट करने या ऐप छोड़ने के लिए कहता है (एंड्रॉइड)

इसलिए मैं इंटरनेट से कनेक्ट करने या एप्लिकेशन छोड़ने के लिए कहने के लिए एक संवाद बॉक्स को संकेत देना चाहता हूं।

उपयोगकर्ता को वाईफाई और कैरियर नेटवर्क विकल्प दोनों दिखाएं।

+0

जितना आसान है, बस जांचें कि कोई सक्रिय नेटवर्क कनेक्शन है या नहीं। यदि नहीं, तो हाँ दिखाएं | कोई संवाद नहीं। यदि सकारात्मक है, तो नेटवर्क सेटिंग्स दिखाएं। अन्यथा, गतिविधि खत्म करो। –

उत्तर

5

इस चेक के लिए इस कोड की जाँच करनी चाहिए

यदि नहीं, तो का उपयोग wifi और मोबाइल डेटा .. नेटवर्क कनेक्शन की जांच करने के लिए स्पलैश या अपनी मुख्य गतिविधि पर ट्यून कोड या नेट कनेक्शन कनेक्ट नहीं होने पर गतिविधि को पॉप अप करें। यह आसान है

private boolean haveNetworkConnection() { 
    boolean haveConnectedWifi = false; 
    boolean haveConnectedMobile = false; 

    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo[] netInfo = cm.getAllNetworkInfo(); 
    for (NetworkInfo ni : netInfo) { 
     if (ni.getTypeName().equalsIgnoreCase("WIFI")) 
      if (ni.isConnected()) 
       haveConnectedWifi = true; 
     if (ni.getTypeName().equalsIgnoreCase("MOBILE")) 
      if (ni.isConnected()) 
       haveConnectedMobile = true; 
    } 
    return haveConnectedWifi || haveConnectedMobile; 
} 
+0

यदि मैं प्रत्येक खंड में इंटरनेट कनेक्शन की जांच करना चाहता हूं (दूसरे शब्दों में, प्रत्येक यूआई पेज में)। आइए पहले कहें कि मैं छवि पर क्लिक करता हूं और मुझे बड़ी छवि दिखाई देती है, लेकिन अब यदि इंटरनेट कनेक्शन गुम हो गया है, तो मुझे उपयोगकर्ता को सूचित करना चाहिए। इस कोड को कहां रखा जाए, ताकि मैं सभी स्क्रीनों में इंटरनेट कनेक्टिविटी की जांच कर सकूं? – user3705478

+0

एक सामान्य उपयोग वर्ग बनाएं और इसे वहां से एक्सेस करें। साथ ही आप प्रसारण भी बना सकते हैं और जहां भी चाहें नेटवर्क परिवर्तन सुन सकते हैं। –

2

सबसे पहले आप अगर वे पहले से (उदाहरण के टन इस ऑनलाइन कैसे करना है) से जुड़े हुए हैं या नहीं दोनों के लिए

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setMessage("Connect to wifi or quit") 
.setCancelable(false) 
.setPositiveButton("Connect to WIFI", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int id) { 
     startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); 
    } 
}) 
.setNegativeButton("Quit", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int id) { 
     this.finish(); 
    } 
}); 
AlertDialog alert = builder.create(); 
alert.show(); 
1
//Checking For Internet Connection 
ConnectionDetector cd = new ConnectionDetector(getApplicationContext()); 

    // Check if Internet present 
    if (!cd.isConnectingToInternet()) { 
     // Internet Connection is not present 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setMessage("Connect to wifi or quit") 
     .setCancelable(false) 
     .setPositiveButton("Connect to WIFI", new DialogInterface.OnClickListener() { 

       public void onClick(DialogInterface dialog, int id) { 
        startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); 
       } 
     }) 
     .setNegativeButton("Quit", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 
       this.finish(); 
     } 
     }); 
     AlertDialog alert = builder.create(); 
     alert.show(); 

    return; 
    } 
+1

हमें अपने उत्तरों को जोड़ना चाहिए – MobileMon

+0

मैं वही सोच रहा था .... लॉल .. –

4

इस प्रयास करें:

public static boolean isConnected(Context context){ 
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
NetworkInfo wifiInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
NetworkInfo mobileInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 

if ((wifiInfo != null && wifiInfo.isConnected()) || (mobileInfo != null && mobileInfo.isConnected())) { 
     return true; 
}else{ 
     showDialog(); 
     return false; 
} 

private void showDialog() 
{ 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setMessage("Connect to wifi or quit") 
     .setCancelable(false) 
     .setPositiveButton("Connect to WIFI", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
       startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); 
      } 
     }) 
     .setNegativeButton("Quit", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
       this.finish(); 
      } 
     }); 
     AlertDialog alert = builder.create(); 
     alert.show(); 
} 
+0

आपने मेरा जवाब कॉपी किया ......... – MobileMon

+0

हाँ ... इसका एक हिस्सा ... –

+0

तो मेरा संपादन क्यों नहीं करें और उस पर निर्माण क्यों करें? – MobileMon

0

इस तरह यह किया जाता है।

एक वैध इंटरनेट कनेक्शन के लिए इस वर्ग के चेक:

public class ConnectionStatus { 

    private Context _context; 

    public ConnectionStatus(Context context) { 
     this._context = context; 
    } 

    public boolean isConnectionAvailable() { 
     ConnectivityManager connectivity = (ConnectivityManager) _context 
       .getSystemService(Context.CONNECTIVITY_SERVICE); 
     if (connectivity != null) { 
      NetworkInfo[] info = connectivity.getAllNetworkInfo(); 
      if (info != null) 
       for (int i = 0; i < info.length; i++) 
        if (info[i].getState() == NetworkInfo.State.CONNECTED) { 
         return true; 
        } 
     } 
     return false; 
    } 
} 

निम्न विधि वाई-फाई पैनल खुल जाता है अगर कोई वैध इंटरनेट कनेक्शन है:

public void addListenerOnWifiButton() { 
     Button btnWifi = (Button)findViewById(R.id.btnWifi); 

     iia = new ConnectionStatus(getApplicationContext()); 

     isConnected = iia.isConnectionAvailable(); 
     if (!isConnected) { 
      btnWifi.setOnClickListener(new View.OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); 
        Toast.makeText(getBaseContext(), "Please connect to a hotspot", 
          Toast.LENGTH_SHORT).show(); 
       } 
      }); 
     } 
     else { 
      btnWifi.setVisibility(4); 
      warning.setText("This app may use your mobile data to update events and get their details."); 
     } 
    } 

निम्न विधि 3 जी को खोलता है पैनल यदि कोई वैध इंटरनेट कनेक्शन नहीं है:

public void addListenerOn3GButton() { 
    Button btnThreeGee = (Button)findViewById(R.id.btn3G); 
    iia = new ConnectionStatus(getApplicationContext()); 

    isConnected = iia.isConnectionAvailable(); 
    if (!isConnected) { 
     btnThreeGee.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      startActivity(new Intent(Settings.ACTION_DATA_ROAMING_SETTINGS)); 
      Toast.makeText(getBaseContext(), "Please check 'Data enabled' option", 
        Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    } 
    else { 

     btnThreeGee.setVisibility(4); 
     cont.setVisibility(View.VISIBLE); 
     warning.setText("This app may use your mobile data to update events and get their details."); 
     } 
} 

आशा है कि इससे मदद मिलती है :)

+0

हे मैन, क्या आपको एक रोमांस/जीपीएस प्रॉम्प्ट के समान सक्षम/अक्षम करने के रूप में डेटा रोमिंग सेटिंग्स प्रॉम्प्ट को खोलने के बारे में कोई विचार होगा? आपका उत्तर ठीक काम करता है लेकिन यह केवल एक छोटे से संवाद की बजाय एक नई गतिविधि खोलता है जो उपयोगकर्ता अनुभव को कम करता है। – Razgriz

+0

मुझे लगता है [यह] (http://stackoverflow.com/a/15456565/1116216) उत्तर आपको जो चाहिए उसे प्राप्त करने में आपकी सहायता करेगा। –

+1

मेरा मतलब यह था कि एक संवाद बॉक्स दिखाई देगा और ओके/हां/आदि पर क्लिक करने से स्वचालित रूप से मोबाइल डेटा चालू हो जाएगा। डायलॉग बॉक्स के साथ ब्लूटूथ को चालू करने के लिए आपको कैसे संकेत मिलता है और यदि आप हाँ पर क्लिक करते हैं, तो आपका ब्लूटूथ स्वचालित रूप से चालू हो जाएगा। या Google मानचित्र कैसे खोलते हैं यह दिखाता है कि "इस ऐप को आपके स्थान का उपयोग करने दें?" और हाँ पर क्लिक करने से आपकी स्थान सेटिंग सक्षम हो जाएगी।हाँ पर क्लिक न करें और एक नई गतिविधि दिखाएं। – Razgriz

संबंधित मुद्दे