Kelompok 4
Dani Khoirul Wafa 16.11.0185
Doni Damara 16.11.0199
Adiftian Al Azizi 16.11.0202
Mandra Pradita Cahyani 16.11.0212
Charir Maulana Achsan 16.11.0217
Bagus Anjas P 16.11.0221
Esa Rizki Anandrian 16.11.0248
Danang Aldy Kurniawan 16.11.0267
Luky Sufra Alfarizi 16.11.0272
Tri Mardianto 16.11.0276
Agia Hana Lestari 16.11.0282
KELAS TI 16 S
———————————————————————————————————————
PERTEMUAN 7
Materi yang akan dibahas :
Network connectivity services Sensors.
- Mengelola perangkat Bluetooth dan mode dapat ditemukan
- Menemukan perangkat Bluetooth jarak jauh
- Berkomunikasi melalui Bluetooth
- Memantau konektivitas internet
- Pemantauan Wi-Fi dan detail jaringan
- Mengkonfigurasi Wi-Fi dan memindai jalur akses
- Mentransfer data menggunakan Wi-Fi Direct
- Memindai tag NFC
- Mentransfer data menggunakan Android Beam
A. Mengelola perangkat Bluetooth dan mode dapat ditemukan.
Platform Android menyertakan dukungan untuk tumpukan jaringan Bluetooth, yang memungkinkan perangkat untuk secara nirkabel bertukar data dengan perangkat Bluetooth lainnya. Kerangka kerja aplikasi menyediakan akses ke fungsionalitas Bluetooth melalui Android Bluetooth API. API-API ini mengizinkan aplikasi secara nirkabel terhubung ke perangkat Bluetooth lainnya, memungkinkan fitur nirkabel point-to-point dan multipoint.
Menggunakan Bluetooth API, aplikasi Android bisa melakukan hal berikut:
- Memindai perangkat Bluetooth lain.
- Melakukan kueri adaptor Bluetooth local untuk perangkat Bluetooth yang disandingkan
- Membangun saluran RFCOMM.
- Terhubung ke prangkat lain melalui pencarian layanan.
- Mentransfer data ke dan dari perangkat lain.
- Mengelola beberapa koneksi
Semua Bluetooth API tersedia dalam paket android.bluetooth .Berikut adalah ringkasan dari kelas dan antarmuka yang diperlukan untuk membuat koneksi Bluetooth yaitu :
- BluetoothAdapter
Merepresentasikan adaptor Bluetooth lokal (radio Bluetooth). BluetoothAdapter adalah titik-masuk untuk semua interaksi Bluetooth. Dengan ini, Anda bisa menemukan perangkat Bluetooth lain, kueri daftar perangkat terikat (disandingkan), buat instance BluetoothAdapter menggunakan alamat MAC yang dikenal, dan membuat BluetoothServerSocket untuk mendengarkan momunikasi dari perangkat lain.
- BluetoothDevice
Mempresentasikan antarmuka untuk soket Bluetooth, ini adalah titik koneksi yang memungkinkan sebuah aplikasi untuk bertukar data dengan perangkat lain melalui InputStream dan OutputStream.
- BluetoothServerSocket
Mempresentasikan soket server yang terbuka yang mendengarkan permintaan masuk. Agar bisa menghubungkan dua perangkat Android, satu perangkat harus membuka soket server dengan kelas ini. Ketika perangkat Bluetooth jarak jauh membuat permintaan koneksi ke perangkat ini, BluetoothServerSocket akan mengembalikan BluetoothSocket yang terhubung saat koneksi diterima.
- BluetoothClass
Menguraikan karakteristik umum dan kemampuan dari perangkat Bluetooth. Ini adalah set properti hanya-baca yang mendefinisikan kelas-kelas perangkat dan layanannya dari perangkat besar dan kecil. Akan tetapi, ini tidak Andal dalam menjelaskan semua profil dan layanan Bluetooth yang didukung perangkat, namun berguna sebagai petunjuk tipe perangkat.
- BluetoothProfile
Antarmuka yang mewakili profil Bluetooth. Profil Bluetooth adalah spesifikasi antarmuka nirkabel untuk komunikasi berbasis-Bluetooth antar perangkat. Contohnya adalah profil Hands-Free.
- BluetoothHeadset
Menyediakan dukungan untuk headset Bluetooth yang akan digunakan pada ponsel. Ini termasuk profil Bluetooth Headset dan Hands-Free (v1.5).
Izin Bluetooth
Untuk menggunakan fitur Bluetooth dalam aplikasi, Anda harus mendeklarasikan izin Bluetooth. Kita memerlukan izin ini untuk melakukan komunikasi Bluetooth, seperti meminta koneksi, menerima koneksi, dan mentransfer data dengan cara :
BMenemukan perangkat Bluetooth jarak jauh.
Menggunakan BluetoothAdapter, kita bisa menemukan perangkat Bluetooth jarak jauh melalui pencarian peangkat atau dengan kueri daftar perangkat yang disandingkan(terhubung).
Pencarian perangkat adalah prosedur pemindaian yang menelusuri area lokal untuk perangkat yang mengaktifkan Bluetooth dan kemudian meminta beberapa informasi tentang setiap perangkat tersebut (ini kadang-kadang disebut dengan “menemukan”, “menanyakan” atau “memindai”). Namun, perangkat Bluetooth dalam area lokal akan merespons permintaan penemuan hanya jika Bluetooth diaktifkan agar dapat ditemukan. Jika dapat ditemukan, perangkat tersebut akan merespons permintaan penemuan dengan berbagi beberapa informasi, seperti nama perangkat, kelas, dan alamat MAC yang unik. Menggunakan informasi ini, perangkat yang menjalankan pencarian bisa memilih untuk memulai koneksi ke perangkat yang ditemukan.
Setelah koneksi dibuat dengan perangkat jauh untuk pertama kalinya, permintaan penyandingan secara otomatis ditampilkan ke pengguna. Ketika perangkat disandingkan, informasi dasar tentang perangkat tersebut (seperti nama perangkat, kelas, dan alamat MAC) akan disimpan dan bisa dibaca dengan menggunakan Bluetooth API. Menggunakan alamat MAC yang dikenal untuk perangkat jauh, koneksi bisa dimulai dengan perangkat tersebut setiap saat tanpa menjalankan pencarian (dengan asumsi perangkat berada dalam jangkauan).
Bahwa ada perbedaan antara yang disandingkan dan yang dihubungkan. Disandingkan artinya dua perangkat saling menyadari keberadaan masing-masing, memiliki kunci-tautan bersama yang bisa digunakan untuk autentikasi, dan dapat membangun koneksi terenkripsi satu sama lain. Dihubungkan artinya perangkat saat ini berbagi saluran RFCOMM dan bisa saling berkiriman data. Android Bluetooth API sekarang membutuhkan perangkat untuk disandingkan sebelum koneksi RFCOMM dapat dibuat. (Penyandingan secara otomatis dilakukan ketika Anda memulai koneksi terenkripsi dengan Bluetooth API.)
CBerkomunikasi melalui Bluetooth
Sebelum melakukan komunikasi, harus memastikan bahwa Bluetooth didukung pada perangkat yang kita gunakan, apa bila mendukung maka pastikan bahwa bluetooth dalam keadaan aktif. Berikut merupakan kode yang akan melakukan hal tersebut:
- Mengaktifkan Bluetooth
Berikutnya, Anda harus memastikan bahwa Bluetooth diaktifkan. Panggil isEnabled() untuk memeriksa apakah Bluetooth saat ini diaktifkan. Jika metode ini mengembalikan false, maka Bluetooth dinonaktifkan. Untuk meminta agar Bluetooth diaktifkan, panggil startActivityForResult() dengan Maksud aksi ACTION_REQUEST_ENABLE. Ini akan mengeluarkan permintaan untuk mengaktifkan Bluetooth melalui setelan sistem (tanpa menghentikan aplikasi Anda). Misalnya:
- Melakukan kueri perangkat yang disandingkan
Sebelum melakukan pencarian perangkat, ada baiknya melakukan kueri kumpulan perangkat yang disandingkan untuk melihat jika perangkat yang diinginkan sudah dikenal. Untuk melakukannya, panggil getBondedDevices(). Ini akan mengembalikan Set BluetoothDevice yang mewakili perangkat yang disandingkan. Misalnya, Anda bisa melakukan kueri semua perangkat yang disandingkan dan kemudian menampilkan nama masing-masing perangkat kepada pengguna, menggunakan ArrayAdapter:
- Menemukan perangkat
Untuk mulai menemukan perangkat, cukup panggil startDiscovery(). Proses ini asinkron dan metode ini akan langsung dikembalikan dengan boolean yang menunjukkan apakah penemuan telah berhasil dimulai. berikut ini adalah cara mendaftar untuk menangani siaran ketika perangkat ditemukan:
Semua yang dibutuhkan dari objek BluetoothDevice agar bisa memulai koneksi adalah alamat MAC. Dalam contoh ini, itu disimpan sebagai bagian dari ArrayAdapter yang ditampilkan kepada pengguna. Alamat MAC nantinya bisa diambil agar dapat memulai koneksi.
- Menghubungkan Perangkat
Agar bisa membuat koneksi antar aplikasi pada dua perangkat, Anda harus mengimplementasikan mekanisme sisi-server dan sisi-klien, karena salah satu perangkat harus membuka soket server dan yang lainnya harus memulai koneksi (menggunakan alamat MAC perangkat server untuk memulai koneksi). Server dan klien dianggap terhubung satu sama lain ketika mereka masing-masing memiliki BluetoothSocket yang telah terhubung pada saluran RFCOMM yang sama. Pada tahap ini, setiap perangkat bisa memperoleh aliran masukan dan keluaran serta transfer data dapat dimulai, yang dibahas dalam bagian mengenai Mengelola Koneksi. Bagian ini menjelaskan cara memulai koneksi antara dua perangkat.
DMemantau konektivitas internet.
Pengembangan aplikasi yang membutuhkan koneksi internet untuk operasinya, perlu melakukan pengecekan terlebih dahulu. Contoh sebuah aplikasi yang menreapkan API Google Maps, membutuhkan koneksi internet untuk menampilkan peta. Akan tetapi, tidak dilakukan pengecekan koneksi internet. Aplikasi pun gagal menampilkan peta dan tampa pesan umpan balik. Pengecekan koneksi internet akan membantu kita membuat umpan balik ke pengguna aplikasi. Misalkan, ketika user ingin menampilkan peta Google Map, periksa terlebih dahulu koneksi internetnya. Kalau ada koneksi, izinkan untuk membuka activity Google Map.
Berikut ini fungsi atau method yang dapat digunakan untuk memeriksa koneksi internet pengguna.
private boolean adaInternet(){ ConnectivityManager koneksi = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); return koneksi.getActiveNetworkInfo() != null;}
Ketika anda mengetik kode fungsi di atas di Android Studio, maka akan otomatis pustakanya diimpor.
import android.content.Context;import android.net.ConnectivityManager;
Setelah itu, untuk menggunkan fungsi yang dibuat tadi, kita dapat memanfaatkan event tombol diklik atau event yang lainnya.
Contoh:
Button btn = (Button) findViewById(R.id.button);btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(adaInternet()){ // tampilkan peta Toast.makeText(getActivity(), “Terhubung ke internet”, Toast.LENGTH_LONG).show(); }else{ // tampilkan pesan Toast.makeText(getActivity(), “Tidak ada koneksi internet”, Toast.LENGTH_LONG).show(); } }});
Hasilnya akan ditampilkan pesan (Toast) “Terhubung ke internet” bila ponsel terhubung ke interet.
E. Pemantauan Wi-Fi dan detail jaringan
- Menentukan apakah kita memiliki koneksi internet
Kita tidak perlu menjadwalkan pembaruan berdasarkan sumber daya Internet jika tidak terhubung ke Internet. Cuplikan berikut menampilkan cara menggunakan Connectivity Manager 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();
Menentukan tipe koneksi internet kita
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
F. NFC
NFC adalah fitur standar yang terdapat di beberapa smartphone. NFC memungkinkan smartphone dapat terkoneksi dengan mudah dengan perangkat lain yang kompatibel dengan NFC atau dapat melakukan pekerjaan dengan NFC tag. NFC tag adalah penghubung untuk memulai fitur dengan menggunakan NFC. NFC tag yang telah diprogram memungkinkan pengguna untuk mengendalikan berbagai fungsi pada ponsel mereka secara otomatis, hanya dengan satu kali tap.
G. ANDROID BEAM
Android Beam adalah salah satu feature mutakhir yang ada pada samartphone Android yang memiliki type android 4 ke atas. Feature ini cuma bisa jalan pada smartphone yang telah mendukung sistem NFC atau Near Field Communication. Fungsi paling utama dari feature ini yaitu untuk berbagi file, bisa berbentuk kontak, web pages, video Youtube, maps, sampai dengan aplikasi, dari perangkat ICS satu ke perangkat ICS yang lain dengan kurun waktu yang singkat atau bahkan juga dalam waktu relatif cepat. Cara kerjanya cukup sederhana. Kita tinggal menyentuhkan dua piranti ICS dengan back-to-back (sama-sama membelakangi), kemudian kita tinggal men-tap pada monitor perangkat yang dipakai sebagai pengirim data tersebut.
PPT PERTEMUAN 7 KELOMPOK 4 : https://drive.google.com/file/d/1dc4h-7t_-4ou1sClsk-TwQKMZqA128NH/view?usp=sharing
WORD PERTEMUAN 7 KELOMPOK 4 : https://drive.google.com/file/d/1OVU0MKqjuCn_6SvzTIweLz1Xkkgu-z6w/view?usp=sharing
Contoh Program : https://drive.google.com/file/d/1_xxSkvKZJ84_oesdzQafTTF5gZFO_-wl/view?usp=sharing