بررسی اتصال اینترنت در برنامه نویسی اندروید
سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش بررسی اتصال اینترنت در برنامه نویسی اندروید می پردازیم شاید بررسی کردن اینترنت بخش مهمی از برنامه باشد در صورتی که خطا ها اتصال به اینترنت را به شکل درست مدیریت نکرده باشید زمانی که یک request به یک url ارسال شود ممکن است برنامه شما کرش دهد به همین منظور لازم است بررسی کنید اینترنت موجود است یا خیر در ادامه با ما همراه باشید.
ابتدا برای اینکه ما از کلاس ConnectivityManager و NetworkInfo استفاده کنیم نیاز است تا دسترسی های لازم را اضافه کنیم.
برای اینکار وارد فایل AndroidManifest.xml شده و دسترسی های زیر را به آن اضافه کنید.
1 2 3 | <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> |
در صورت اضافه نکردن دسترسی ها برنامه کرش می دهد !
در صورتی که حرفه ای هستید از کد زیر استفاده کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public static boolean hasInternetConnection() { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo wifiNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (wifiNetwork != null && wifiNetwork.isConnected()) { return true; } NetworkInfo mobileNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if (mobileNetwork != null && mobileNetwork.isConnected()) { return true; } NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); if (activeNetwork != null && activeNetwork.isConnected()) { return true; } return false; } |
در صورتی که نمی دانید باید کد را کجا قرار دهید ادامه را دنبال کنید.
در این آموزش کاری با Layout نداریم.
در MainActivity.java همانند زیر کدهای را قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | package ir.programchi; /** * Author Jefferson */ public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if(hasInternetConnection){ Toast.makeText(getApplicationContext(), "Have Connection !", Toast.LENGTH_LONG).show(); } else{ Toast.makeText(getApplicationContext(), "No Connection", Toast.LENGTH_LONG).show(); } } public static boolean hasInternetConnection() { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo wifiNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (wifiNetwork != null && wifiNetwork.isConnected()) { return true; } NetworkInfo mobileNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if (mobileNetwork != null && mobileNetwork.isConnected()) { return true; } NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); if (activeNetwork != null && activeNetwork.isConnected()) { return true; } return false; } } |
به همین سادگی ! در بالا سه بخش بررسی می شود ابتدا وایفا دوم دیتا و سوم اتصال به اینترنت (یعنی داشتن اینترنت) سپس با یک if آن را بررسی کرده ایم.
این آموزش هم به پایان رسید.
موفق و پیروز باشید.
بسیار عالی . ممنون از پستای خوبتون
بسیار عالی ممنون از شما
ببخشید من در بخش contextمشکل دارم وقتی حروف بزرگ مینویسم این اشتباه مشه getSystemService