سبد خرید0

هیچ محصولی در سبد خرید نیست.

آموزش چک کردن اتصال اینترنت در برنامه نویسی اندروید با والی

در این آموزش بر خلاف سایر روش های چک کردن اتصال اینترنت یک روش دیگه با استفاده از
کتابخانه والی  رو خدمت کاربران کیومرث دولوپر آموزش میدیم

در روش های قبلی که فقط روشن بودن وایفای یا دیتای موبایل مورد بررسی قرار میگیرد
و در صورت روشن بودن و حتی نداشتن اینترنت کد کار میکرد اما در این روش در صورت نبودن اینترنت اپ کار نخواهد کرد 

قصد داریم تا به زیبای اپ نیز در کنار آموزش توجه کنیم  پس با ما همراه باشید 

ابتدا فایل build.gradle را باز کنید و دو کتابخانه زیر را به آن اضافه کنید

				
					    implementation 'com.android.volley:volley:1.2.1'
    implementation 'com.airbnb.android:lottie:6.1.0'
				
			

سینک رو بزنید تا اضافه بشن به پروژه

بررسی وضعیت اتصال اینترنت در برنامه نویسی اندروید با والی

وبسایت lottiefiles مراجعه کرده و دو انیمیشن دلخواه برای اتصال و عدم اتصال دانلود و در داخل پوشه raw  در پروژه خود قرار دهید

اکنون در پوشه لایوت پروژه خود علاوه بر activity_main دو لایوت دیگر با اسم های دلخواه ایجاد کنید در اینجا من از fragment_start و fragment_work استفاده کردم ام و به ترتیب کد های زیر را اضافه کنید به هر لایوت

لایوت activity_main
				
					<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

   <FrameLayout
        android:id="@+id/main_techblax"
       android:layout_width="match_parent"
       android:layout_height="match_parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>
				
			
لایوت fragment_start
				
					<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context=".StartFragment"
    android:background="#FBF5BA">

    <com.airbnb.lottie.LottieAnimationView
        android:id="@+id/main_logo"
        android:layout_width="match_parent"
        android:layout_height="250dp"
        app:lottie_autoPlay="true"
        app:lottie_loop="true"
        app:lottie_rawRes="@raw/internet_error"
        android:layout_centerInParent="true"/>


    <androidx.appcompat.widget.AppCompatButton
        android:id="@+id/btn_retry"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@drawable/mybutton"
        android:layout_margin="20dp"
        android:text="Retry..."
        android:visibility="gone"
        android:textColor="@color/white"/>




</RelativeLayout>
				
			
لایوت fragment_work
				
					<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context=".StartFragment"
    android:orientation="vertical"
    android:gravity="center"
    android:background="#FBF5BA">

<androidx.appcompat.widget.AppCompatTextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:textSize="40sp"
    android:gravity="center"
    android:text="Tech Blax"
    android:textColor="#ff0000"/>

    <androidx.appcompat.widget.AppCompatTextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:textSize="30sp"
        android:gravity="center"
        android:text="subscribe"/>



    <androidx.appcompat.widget.AppCompatTextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:textSize="25sp"
        android:gravity="center"
        android:text="network status : online"/>


</LinearLayout>
				
			

خوب بریم سراغ بخش کد های جاوا 

حالا فایل MainActivity را باز کنید و کدها زیر اضافه کنید

				
					public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        getSupportFragmentManager().beginTransaction().replace(R.id.main_techblax,new StartFragment()).commit();




    }
}
				
			

یه فرگمنت جدید به اسم StartFragment را ایجاد کنید و کد های زیر رو اضافه کنید

				
					public class StartFragment extends Fragment {

    AppCompatButton btn_retry;
    LottieAnimationView lottieAnimationView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_start, container, false);


        btn_retry = view.findViewById(R.id.btn_retry);
        lottieAnimationView = view.findViewById(R.id.main_logo);

        btn_retry.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(requireActivity(),MainActivity.class));
                requireActivity().finish();
            }
        });

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                check_internet();
            }
        },3000);



        return view;
    }

    private void check_internet() {
        RequestQueue requestQueue = Volley.newRequestQueue(requireActivity());
        int milisec = 5000;
        RetryPolicy policy = new DefaultRetryPolicy(milisec,DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
        String url = "https://google.c";
        StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                Toast.makeText(requireActivity(), "Internet Work", Toast.LENGTH_SHORT).show();
                requireActivity().getSupportFragmentManager().beginTransaction()
                        .replace(R.id.main_techblax,new WorkFragment()).commit();
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

                btn_retry.setVisibility(View.VISIBLE);
                try {
                    lottieAnimationView.setAnimation(R.raw.infinity);
                    lottieAnimationView.playAnimation();
                }catch (Exception e){}


            }
        });

        request.setRetryPolicy(policy);
        requestQueue.add(request);
    }
}
				
			

فرگمنت آخر رو هم درست کنید به اسم WorkFragment و کد های زیر رو اضافه کنید

				
					public class WorkFragment extends Fragment {


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_work, container, false);



        return view;
    }
}
				
			

خوب اینم از این مجوز اینترنت رو هم به مانیفستتون اضافه کنید و حالشو ببرید 

امیدوارم این مطلب از کیومرث دولوپر به دردتون خورده باشه

آموزش چک کردن اتصال اینترنت در برنامه نویسی اندروید با والی

دیدگاهتان را بنویسید