Rumah >Java >javaTutorial >Bagaimana untuk Mengesan Perubahan Status Rangkaian dan Acara Luar Talian pada 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>
2. Tambahkan kebenaran yang diperlukan pada AndroidManifest.xml
<code class="xml"><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /></code>
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>
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>
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!