Bagikan melalui


Xamarin.Essentials: Koneksi ivity

Kelas Koneksi ivity memungkinkan Anda memantau perubahan dalam kondisi jaringan perangkat, memeriksa akses jaringan saat ini, dan bagaimana saat ini terhubung.

Memulai

Untuk mulai menggunakan API ini, baca panduan memulai untuk Xamarin.Essentials memastikan pustaka diinstal dan disiapkan dengan benar di proyek Anda.

Untuk mengakses fungsionalitas Koneksi ivity, diperlukan penyiapan spesifik platform berikut.

Izin AccessNetworkState diperlukan dan harus dikonfigurasi dalam proyek Android. Ini dapat ditambahkan dengan cara berikut:

Buka file AssemblyInfo.cs di bawah folder Properti dan tambahkan:

[assembly: UsesPermission(Android.Manifest.Permission.AccessNetworkState)]

ATAU Perbarui Manifes Android:

Buka file AndroidManifest.xml di bawah folder Properti dan tambahkan yang berikut ini di dalam node manifes.

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

Atau klik kanan pada proyek Android dan buka properti proyek. Di bawah Manifes Android, temukan area Izin yang diperlukan: dan periksa izin Status Jaringan Akses. Ini akan secara otomatis memperbarui file AndroidManifest.xml .

Menggunakan Koneksi ivity

Tambahkan referensi ke Xamarin.Essentials di kelas Anda:

using Xamarin.Essentials;

Periksa akses jaringan saat ini:

var current = Connectivity.NetworkAccess;

if (current == NetworkAccess.Internet)
{
    // Connection to internet is available
}

Akses jaringan termasuk dalam kategori berikut:

  • Internet – Akses lokal dan internet.
  • ConstrainedInternet – Akses internet terbatas. Menunjukkan konektivitas portal tawanan, di mana akses lokal ke portal web disediakan, tetapi akses ke Internet mengharuskan kredensial tertentu disediakan melalui portal.
  • Lokal – Akses jaringan lokal saja.
  • Tidak Ada – Tidak ada konektivitas yang tersedia.
  • Tidak Diketahui – Tidak dapat menentukan konektivitas internet.

Anda dapat memeriksa jenis profil koneksi apa yang digunakan perangkat secara aktif:

var profiles = Connectivity.ConnectionProfiles;
if (profiles.Contains(ConnectionProfile.WiFi))
{
    // Active Wi-Fi connection.
}

Setiap kali profil koneksi atau akses jaringan berubah, Anda dapat menerima peristiwa saat dipicu:

public class ConnectivityTest
{
    public ConnectivityTest()
    {
        // Register for connectivity changes, be sure to unsubscribe when finished
        Connectivity.ConnectivityChanged += Connectivity_ConnectivityChanged;
    }

    void Connectivity_ConnectivityChanged(object sender, ConnectivityChangedEventArgs e)
    {
        var access = e.NetworkAccess;
        var profiles = e.ConnectionProfiles;
    }
}

Batasan

Penting untuk dicatat bahwa ada kemungkinan yang Internet dilaporkan oleh NetworkAccess tetapi akses penuh ke web tidak tersedia. Karena cara kerja konektivitas pada setiap platform, konektivitas hanya dapat menjamin bahwa koneksi tersedia. Misalnya perangkat mungkin terhubung ke jaringan Wi-Fi, tetapi router terputus dari internet. Dalam hal ini Internet mungkin dilaporkan, tetapi koneksi aktif tidak tersedia.

API

Temukan video Xamarin lainnya di Channel 9 dan YouTube.