android – 检查Internet连接是否可用?

前端之家收集整理的这篇文章主要介绍了android – 检查Internet连接是否可用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发在线应用程序. [问题]当互联网停机或不可用时,它给我错误[强制关闭],我试图使用broadCast接收器处理但不满足精确解决方案,寻找更好的解决方案.
  1. public class MyBroadcastReceiver extends BroadcastReceiver {
  2.  
  3. @Override
  4. public void onReceive(final Context context,final Intent intent) {
  5.  
  6. NetworkInfo info = intent
  7. .getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
  8.  
  9. if (null != info) {
  10.  
  11. String state = info.getState().toString();
  12.  
  13. if (state.equalsIgnoreCase("CONNECTED")) {
  14. SplashScreen.isWiFiConnected = true;
  15. Log.i("isWifiConnected","=================TRUE");
  16. } else {
  17. SplashScreen.isWiFiConnected = false;
  18. Log.i("isWifiConnected","=================FALSE");
  19. }
  20.  
  21. }
  22.  
  23. }
  24.  
  25. }

谢谢.

解决方法

  1. static String data = null;
  2. private static HttpPost httppost;
  3. private static HttpParams httpParameters;
  4. private static int timeoutConnection = 30000;
  5. private static HttpClient httpclient = null;
  6. private static HttpResponse response = null;
  7. private static int responseCode=0;
  8. public static ConnectivityManager mConnectivityManager;
  9. public static NetworkInfo mNetworkInfo;
  10. public static boolean isNetError=false;
  11.  
  12. /** Post Http data and returns final string and status on network */
  13.  
  14. public static void postHttp(String Url,Activity mActivity) {
  15. try {
  16. isNetError=false;
  17.  
  18. mConnectivityManager= (ConnectivityManager) mActivity.getSystemService(Context.CONNECTIVITY_SERVICE);
  19. mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
  20.  
  21. if (mNetworkInfo != null && mNetworkInfo.isConnectedOrConnecting())
  22. {
  23. httppost = new HttpPost(Url);
  24. httpParameters = new BasicHttpParams();
  25. HttpConnectionParams.setSoTimeout(httpParameters,timeoutConnection);
  26. httpclient = new DefaultHttpClient(httpParameters);
  27.  
  28. List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
  29. nameValuePairs.add(new BasicNameValuePair("text","some Text"));
  30.  
  31.  
  32. httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs,HTTP.UTF_8));
  33.  
  34. // Execute HTTP Post Request
  35. response = httpclient.execute(httppost);
  36. data = EntityUtils.toString(response.getEntity());
  37.  
  38. }
  39. else
  40. isNetError=true;
  41.  
  42. } catch (Exception e) {
  43. e.printStackTrace();
  44. isNetError=true;
  45. }
  46.  
  47. if (responseCode == 200)
  48. {
  49. isNetError=false;
  50. System.out.println("final..." + data);
  51. }
  52. else
  53. isNetError=true;
  54. }

在asyntask的doInBackground()中调用方法,并在onPostExecute()中检查isNetError值,并在添加权限的其他答案中提及< uses-permission android:name =“android.permission.ACCESS_NETWORK_STATE”/>

  1. if(isNetError)
  2. //No internet
  3. else
  4. //do your stuff

猜你在找的Android相关文章