Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Mengesan Perubahan Ketersambungan Internet dengan Amanah dalam Apl Android Saya Menggunakan Penerima Siaran?

Bagaimanakah Saya Boleh Mengesan Perubahan Ketersambungan Internet dengan Amanah dalam Apl Android Saya Menggunakan Penerima Siaran?

Patricia Arquette
Patricia Arquetteasal
2024-12-20 10:41:09372semak imbas

How Can I Reliably Detect Internet Connectivity Changes in My Android App Using Broadcast Receivers?

Penerima Siaran untuk Menyemak Sambungan Internet dalam Apl Android

Dalam aplikasi Android, penerima siaran digunakan untuk memantau perubahan dalam sistem atau acara tertentu. Satu kes penggunaan biasa seperti itu ialah menyemak sambungan internet. Walau bagaimanapun, dalam senario tertentu, adalah wajar untuk mengehadkan seruan penerima kepada keadaan di mana sambungan rangkaian tersedia.

Masalah: Seruan Pendua Penerima Siaran

Cabaran biasa yang dihadapi ialah penerima dipanggil dua kali, walaupun rangkaian mungkin tidak tersedia. Ini boleh dikaitkan dengan penambahan berbilang penapis niat dalam perisytiharan manifes penerima. Untuk menyelesaikan isu ini, adalah memadai untuk menggunakan hanya satu tindakan untuk perubahan sambungan rangkaian, seperti:

<intent-filter>
    <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>

Menyemak Ketersediaan Internet

Untuk menangani kebimbangan kedua, di mana penerima harus hanya mencetuskan apabila sambungan rangkaian tersedia, kod yang disediakan memenuhi keperluan ini dengan berkesan. Ia memantau ketersediaan WiFi dan rangkaian mudah alih dan hanya memberitahu jika salah satu daripadanya disambungkan.

Nota Tambahan

Untuk pendekatan yang lebih mudah untuk mengesahkan sambungan Internet, pertimbangkan fungsi berikut:

public boolean isOnline(Context context) {

    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    //should check for null as it will be null in airplane mode
    return (netInfo != null && netInfo.isConnected());
}

Kaedah ini menyediakan cara ringkas untuk menentukan sama ada peranti mudah alih disambungkan ke rangkaian.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Perubahan Ketersambungan Internet dengan Amanah dalam Apl Android Saya Menggunakan Penerima Siaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn