Konektivitas Android
Menentukan dan Memantau Status Konektivitas
Beberapa penggunaan paling umum untuk alarm berulang
dan layanan latar belakang adalah menjadwalkan pembaruan rutin data aplikasi
dari sumber daya Internet, data cache, atau mengeksekusi unduhan yang
berlangsung lama. Namun jika Anda tidak terhubung ke Internet, atau koneksi
terlalu lambat untuk menyelesaikan unduhan, bukankah lebih baik membangunkan
perangkat untuk menjadwalkan pembaruan?
Anda bisa menggunakan ConnectivityManager untuk
memeriksa apakah Anda benar-benar terhubung ke Internet, dan jika demikian, dan
apakah tipe koneksi yang ada.
Menentukan
apakah Anda memiliki Koneksi Internet
Anda tidak perlu menjadwalkan pembaruan berdasarkan
sumber daya Internet jika tidak terhubung ke Internet. Cuplikan berikut
menampilkan cara menggunakan ConnectivityManager untuk
melakukan kueri jaringan yang aktif dan menentukan apakah jaringan memiliki
konektivitas Internet
ConnectivityManager cm =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
activeNetwork.isConnectedOrConnecting();
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
activeNetwork.isConnectedOrConnecting();
Menentukan Tipe Koneksi Internet Anda
Bisa juga menentukan tipe koneksi Internet yang saat
ini tersedia.
Konektivitas perangkat, bisa disediakan oleh data
seluler, WiMAX, Wi-Fi, dan koneksi ethernet. Dengan melakukan kueri tipe
jaringan aktif, seperti yang ditampilkan di bawah ini, Anda bisa mengubah laju
penyegaran berdasarkan bandwidth yang tersedia.
boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;
Biaya data seluler cenderung lebih mahal daripada
Wi-Fi, jadi biasanya kecepatan pembaruan aplikasi Anda akan lebih lambat
daripada koneksi seluler. Demikian pula, pengunduhan berukuran besar akan
ditangguhkan hingga Anda mendapatkan koneksi Wi-Fi.
Setelah menonaktifkan pembaruan, Anda harus memantau
perubahan dalam konektivitas agar dapat melanjutkannya setelah terhubung dengan
koneksi Internet.
Memantau Perubahan dalam Konektivitas
ConnectivityManager menyiarkan aksi CONNECTIVITY_ACTION("android.net.conn.CONNECTIVITY_CHANGE") bila detail konektivitas berubah. Anda bisa mendaftarkan penerima siaran
dalam manifes untuk memantau perubahan ini dan melanjutkan (atau menangguhkan)
pembaruan latar belakang Anda sebagaimana mestinya.
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
Perubahan pada konektivitas perangkat bisa sangat
sering terjadi siaran ini terpicu setiap kali Anda beralih antara data seluler
dan Wi-Fi. Karena itu sebaiknya pantau siaran ini hanya jika sebelumnya Anda
telah menangguhkan pembaruan atau unduhan agar dapat melanjutkannya. Umumnya
cukup dengan memeriksa konektivitas Internet sebelum memulai pembaruan dan,
jika tidak ada, menangguhkan pembaruan lebih lanjut sampai konektivitas pulih.
HTTP
Hypertext Transfer Protocol (HTTP) adalah
sebuah protokol jaringan lapisan
aplikasi yang digunakan untuk sistem informasi terdistribusi, kolaboratif,
dan menggunakan hipermedia. Penggunaannya
banyak pada pengambilan sumber daya yang saling terhubung dengan tautan, yang
disebut dengan dokumen hiperteks, yang kemudian membentuk World
Wide Web pada tahun 1990 oleh fisikawan Inggris, Tim
Berners-Lee. Hingga kini, ada dua versi mayor dari protokol HTTP, yakni
HTTP/1.0 yang menggunakan koneksi terpisah untuk setiap dokumen, dan HTTP/1.1
yang dapat menggunakan koneksi yang sama untuk melakukan transaksi. Dengan
demikian, HTTP/1.1 bisa lebih cepat karena memang tidak usah membuang waktu
untuk pembuatan koneksi berulang-ulang.
Pengembangan standar HTTP telah dilaksanakan oleh
Konsorsium World Wide Web (World Wide Web Consortium/W3C) dan
juga Internet Engineering Task Force (IETF),
yang berujung pada publikasi beberapa dokumen Request for Comments (RFC), dan yang
paling banyak dirujuk adalah RFC
2616 (yang dipublikasikan pada bulan Juni 1999), yang
mendefinisikan HTTP/1.1.
Dukungan untuk HTTP/1.1 yang belum disahkan, yang pada
waktu itu RFC 2068,
secara cepat diadopsi oleh banyak pengembang penjelajah
Web pada tahun 1996 awal. Hingga Maret 1996,
HTTP/1.1 yang belum disahkan itu didukung oleh Netscape 2.0, Netscape Navigator
Gold 2.01, Mosaic 2.7, Lynx 2.5, dan
dalam Microsoft Internet Explorer 3.0. Adopsi yang
dilakukan oleh pengguna akhir penjelajah Web pun juga cepat. Pada bulan Maret
2006, salah satu perusahaan Web hosting melaporkan bahwa lebih dari 40% dari
penjelajah Web yang digunakan di Internet adalah penjelajah Web yang mendukung
HTTP/1.1. [1]Perusahaan
yang sama juga melaporkan bahwa hingga Juni 1996, 65% dari semua
penjelajah yang mengakses server–server mereka
merupakan penjelajah Web yang mendukung HTTP/1.1. Standar
HTTP/1.1 yang didefinisikan dalam RFC 2068 secara resmi
dirilis pada bulan Januari 1997. Peningkatan dan pembaruan terhadap standar
HTTP/1.1 dirilis dengan dokumen RFC 2616 pada bulan Juni
1999.
Socket ?
Socket adalah mekanisme komunikasi untuk pertukaran
data antar aplikasi yang terdapat di dalam sebuah mesin maupun beda mesin dan
pertukaran ini terjadi pada sebuah jaringan komputer.
Untuk membangun sebuah aplikasi yang berbasis socket,
kita dapat menggunakan 2 jenis socket yang berbeda yaitu :
·
TCP Socket : menggunakan konsep connection
oriented dan reliable data transfer sehingga aplikasi yang dibangun dengan TCP
Socket tidak mempedulikan lama waktu sebuah pengiriman data akan tetapi sangat
mementingkan ketepatan data. Konsep connection oriented adalah suatu proses
pengiriman data disertai dengan tanggung jawab sehingga ketika data sampai pada
tujuan akan ada pemberitahuan atau jika terjadi kesalahan pada saat pengiriman
data maka data tersebut akan dikirim kembali ke tujuannya. Konsep reliable data
transfer adalah sebuah proses pengiriman data dengan menggunakan nomor urut
sehingga pada saat diterima, data akan tersusun berdasarkan nomor urut
tersebut.
·
UDP Socket : menggunakan konsep
connectionless oriented dan unreliable data transfer sehingga aplikasi yang
dibangun dengan UDP Socket tidak mementingkan ketepatan data tetapi lebih
mementingkan akan delay waktu pada saat proses pengiriman data. Konsep
connectionless oriented adalah suatu proses pengiriman data tidak disertai
dengan tanggung jawab sehingga jika terjadi kesalahan pada saat proses
pengiriman maka data tersebut tidak akan dikirim ulang ke tujuan. Konsep
unreliable data transfer adalah sebuah proses pengiriman data dalam bentuk
datagram tanpa nomor urut.
https://www.stikom.edu/s
referensi
https://developer.android.com/training/monitoring-device-state/connectivity-monitoring?hl=id
https://ilmanberimanpoenya.wordpress.com/tugasss-2/penjelasan-http-html-url-www-ftp-domain-hosting/
https://rizkimufrizal.github.io/belajar-socket-programming/