Rumah > Java > javaTutorial > Bagaimana untuk Mengesan Perubahan Status Rangkaian dan Acara Luar Talian pada Android?

Bagaimana untuk Mengesan Perubahan Status Rangkaian dan Acara Luar Talian pada Android?

Mary-Kate Olsen
Lepaskan: 2024-10-24 19:51:02
asal
786 orang telah melayarinya

How to Detect Network Status Changes and Offline Events on Android?

Memantau Perubahan Status Rangkaian pada Android

Soalan: Bagaimanakah saya boleh mengesan perubahan dalam status rangkaian pada Android peranti, khususnya apabila rangkaian di luar talian?

Untuk menangkap perubahan status rangkaian, Android menyediakan kelas BroadcastReceiver. Kelas ConnectivityManager membolehkan anda mendapatkan maklumat tentang sambungan rangkaian aktif.

Penyelesaian:

1. Buat kelas Java memperluaskan Penerima Siaran

<code class="java">public class ConnectionChangeReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
        NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

        if (activeNetInfo != null) {
            Toast.makeText(context, "Active Network Type: " + activeNetInfo.getTypeName(), Toast.LENGTH_SHORT).show();
        }

        if (mobNetInfo != null) {
            Toast.makeText(context, "Mobile Network Type: " + mobNetInfo.getTypeName(), Toast.LENGTH_SHORT).show();
        }
    }
}</code>
Salin selepas log masuk

2. Tambahkan kebenaran yang diperlukan pada AndroidManifest.xml

<code class="xml"><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /></code>
Salin selepas log masuk

3. Daftarkan Penerima Siaran dalam AndroidManifest.xml

<code class="xml"><receiver android:name="com.blackboard.androidtest.receiver.ConnectionChangeReceiver"
          android:label="NetworkConnection">
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
</receiver></code>
Salin selepas log masuk

4. Daftarkan Penerima Siaran secara dinamik (pilihan)

Jika anda perlu mendaftar Penerima Siaran secara dinamik dalam kod anda, anda boleh menggunakan pendekatan berikut:

<code class="java">BroadcastReceiver receiver = new ConnectionChangeReceiver();
IntentFilter filter = new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE");
context.registerReceiver(receiver, filter);</code>
Salin selepas log masuk

Kod ini akan membolehkan anda untuk tangkap perubahan status rangkaian dan tentukan bila rangkaian di luar talian. Anda boleh mengendalikan acara tersebut dengan sewajarnya dalam logik aplikasi anda.

Atas ialah kandungan terperinci Bagaimana untuk Mengesan Perubahan Status Rangkaian dan Acara Luar Talian pada Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan