بررسی وضعیت اتصال به اینترنت در آموزش برنامه نویسی اندروید (در اندروید استودیو)

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

بررسی وضعیت اتصال به اینترنت در آموزش برنامه نویسی اندروید یکی از کارهای مهم طراح اپلیکیشن است که باید بداند دستگاه به اینترنت وصل است یا خیر و اگر وصل است از چه نوعی (داده همراه با Wi-Fi) می باشد؟ ما در این مقاله قصد داریم با یک مثال کاربردی در زمینه بررسی وضعیت اتصال به اینترنت در اندروید استودیو شما را با این جزئیات آشنا کنیم. با ما همراه باشید.

وضعیت اتصال به اینترنت در آموزش برنامه نویسی اندروید چگونه است؟  

در آموزش برنامه نویسی اندروید با استفاده از کلاس ConnectivityManager می توانیم به راحتی بررسی کنیم که دستگاه به اینترنت وصل است یا خیر! و همچنین می توانیم نوع اتصال به اینترنت که در حال استفاده از آن هستیم را نیز مشخص کنیم (یعنی اتصال به اینترنت در اندروید از نوع داده همراه است یا Wi-Fi).

برای به دست آوردن وضعیت اتصال به اینترنت در اندروید استودیو ، برنامه ما باید مجوزهای INTERNET و ACCESS_NETWORK_STATE را بدست آورد. برای این کار ، باید موارد زیر را در فایل مانیفست اندرویدی (manifest file) مانند تصویر زیر اضافه کنیم.

<manifest>
    ....
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    ....
</manifest>

۱- وضعیت اتصال به اینترنت را بررسی کنید

در اندروید ما می توانیم وضعیت اتصال به اینترنت را به آسانی با استفاده از روش ()getActiveNetworkInfo  شیء ConnectivityManager  تعیین کنیم. در نتیجه با استفاده از قطعه کد زیر و استفاده از کلاس ConnectivityManager می توانید بفهمید که اتصال برقرار است یا خیر!

ConnectivityManager cm = (ConnectivityManager)getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo nInfo = cm.getActiveNetworkInfo();
boolean connected = nInfo != null && nInfo.isAvailable() && nInfo.isConnected();

اگر به قطعه کد بالا توجه کنید می بینید که ما از متد ()getActiveNetworkInfo  شیء ConnectivityManager استفاده کردیم تا بدانیم که اتصال به اینترنت در دسترس است یا خیر!

۲- نوع اتصال به اینترنت را تعیین کنید

در اندروید، می توانیم با استفاده از روش ()getType  شیء NetworkInfo به راحتی نوع ارتباط اینترنتی موجود در اینترنت یعنی WI-FI است یا داده های تلفن همراه را تعیین کنیم. قطعه کد زیر برای بدست آوردن نوع اتصال به اینترنت در برنامه اندرویدی نوشته شده است.

ConnectivityManager cm = (ConnectivityManager)getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo nInfo = cm.getActiveNetworkInfo();
boolean isWiFi = nInfo.getType() == ConnectivityManager.TYPE_WIFI;

اگر به قطعه کد بالا توجه کنید می بینید که از روش ()getType  شیء NetworkInfo برای دانستن نوع اتصال به اینترنت استفاده کردیم.

اکنون با مثالی کاربردی خواهید دید که چگونه می توان فایل ها را مستقیماً در حافظه داخلی دستگاه ذخیره کرد و با استفاده از اشیاء FileOutputStream و FileInputStream در برنامه اندرویدی فایل ها را از حافظه داخلی دستگاه خواند.

مثال کاربردی از اتصال به اینترنت در اندروید استودیو

در کد زیر بررسی می کنیم که آیا اتصال به اینترنت در دسترس است یا برنامه از شیء android ConnectivityManager استفاده نمی کند! برای اینکار با استفاده از اندروید استودیو (Android Studio) پروژه جدید اندرویدی ایجاد کرده و نام آن را مثلا InternalConnectionExample بگذارید.

در صورت عدم اطلاع از ایجاد یک پروژه یا یک برنامه در استودیوی اندروید، این مقاله را بخوانید :

مقاله پیشنهادی برای خواندن به شما :

پس از ایجاد یک برنامه ، فایل activ_main.xml را از مسیر پوشه \ res \ layout باز کرده و کدی را مانند شکل زیر بنویسید:

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:id="@+id/btnCheck"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="150dp"
        android:layout_marginLeft="100dp"
        android:text="Check Internet Connection" />
</LinearLayout>

اکنون فایل MainActivity.java را از مسیر \ java \ com.tutlane.internalstorageexample باز کنید و کدی را مانند شکل زیر بنویسید:

MainActivity.java

package com.tutlane.internetconnectionexample;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btnStatus = (Button)findViewById(R.id.btnCheck);
        btnStatus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               // Check for Internet Connection
                if (isConnected()) {
                    Toast.makeText(getApplicationContext(), "Internet Connected", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(getApplicationContext(), "No Internet Connection", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
    public boolean isConnected() {
        boolean connected = false;
        try {
            ConnectivityManager cm = (ConnectivityManager)getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo nInfo = cm.getActiveNetworkInfo();
            connected = nInfo != null && nInfo.isAvailable() && nInfo.isConnected();
            return connected;
        } catch (Exception e) {
            Log.e("Connectivity Exception", e.getMessage());
        }
        return connected;
    }
}

اگر به کد بالا توجه کرده باشید، ما با استفاده از شیء ConnectivityManager وضعیت اتصال به اینترنت را بدست آوریم.

اکنون باید مجوزهای INTERNET و ACCESS_NETWORK_STATE را برای برنامه اندرویدی خود برای آن فایل AndroidManifest.xml باز کنید و مجوزهایی را مانند شکل زیر اضافه کنید:

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.tutlane.internetconnectionexample">
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

اگر به قطعه کد بالا توه کرده باشید می بینید که ما وضعیت اتصال به اینترنت را بدست آوردیم و مجوزهای مورد نیاز را در پرونده AndroidManifest.xml اضافه کردیم.

خروجی نمونه اتصال به اینترنت در اندروید استودیو این جلسه الکامکو 

هنگامی که مثال بالا را در شبیه ساز اندروید استودیو اجرا کنید، نتیجه ای مانند شکل زیر بدست می آید:

بررس اتصال به اینترنت در اندروید استودیو - اتصال به اینترنت در آموزش برنامه نویسی اندروید - طراحی اپلیکیشن موبایل

نتیجه کارکرد این مثال: هنگامی که روی دکمه Check Internet Connection کلیک می کنید، وضعیت اتصال به اینترنت چه در دسترس باشد و چه در دسترس نباشد، واکشی می شود.

در نتیجه به این صورت می توانید وضعیت اتصال به اینترنت در برنامه های اندرویدی با استفاده از شیء ConnectivityManager بر اساس نیازهای خود بررسی کنید.

commentشما بگید!

شما چه سوالی درباره این موضوع دارید که اینجا مطرح نشده است؟ لطفا تجربیات خودتان را در این زمینه حتما توی کامنت برای ما بنویسید. منتظر نظرات، پیشنهادات و سوالات شما در همین صفحه از سایت آموزش برنامه نویسی الکامکو هستیم…

shareاشتراک گذاری این مطلب

shareآخرین مقالات

آخرین مقالات

آموزش های تکمیل شده

توجه

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

0 دیدگاه
بازخورد درون خطی
مشاهده همه نظرات
فهرست