Postingan ini akan membahas tentang bagaimana membuat aplikasi sederhana yang memanfaatkan sensor motion dari ponsel Samsung Galaxy. Lalu bagaimanakah caranya memanfaatkan sensor motion tersebut? Kamu bisa menggunakan Motion SDK.
Apa itu Motion SDK?
Motion SDK adalah salah satu fitur dari Samsung Galaxy SDK. Dengan Motion SDK ini kamu bisa mengembangkan aplikasi Android yang memanfaatkan sensor Motion.
💻 Mulai Belajar Pemrograman
Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.
Daftar SekarangFitur apa saja yang bisa dimanfaatkan dari Motion SDK?
Motion SDK bisa memantau aktifitas user. Dengan SDK ini kita bisa mendapatkan beberapa informasi dari sensor motion tersebut seperti menghitung jumlah langkah, lari, lompat, berkendara, calorie burn, dll. Dalam SDK ini juga terdapat fitur Call Motion yang memungkinkan kita untuk memberikan action ketika ponsel kita dekatkan ke telinga. Lebih spesifiknya ada 4 fitur dari Motion SDK.
- Call Motion, digunakan untuk mendeteksi perpindahan device ketika user sedang melihat device kemudian memindahkannya pada telinga.
- Pedometer, digunakan untuk mendeteksi pergerakan user terhadap smartphone.
- User Activity, digunakan untuk mengetahui aktifitas yang dilakukan oleh user seperti berjalan, berlari, diam, dll.
- User Activity Notification, sama dengan User Activity, namun kita bisa memfilter aktifitas apa saja yang akan kita ketahui.
Penjelasan dan cara pakainya kamu bisa baca lengkap di akademi Samsung Galaxy SDK.
Latihan
Sepertinya menarik untuk mencoba salah satu fitur diatas. Oke kita sepakati kita akan mencoba fitur Pedometer. Kita akan membuat aplikasi sederhana dengan nama Speed Running Pedometer.
Yang pertama, tentunya kita bikin project baru dengan Android Studio. Next, kita download library Motion SDK di http://developer.samsung.com/galaxy/motion.
Jangan lupa masukkan library yang sudah didownload ke folder lib di project kita.
Selanjutnya buka build.gradle dan tambahkan dependencies untuk meng-compile 2 library tadi
1 2 |
compile files('libs/motion-v2.2.1.jar') compile files('libs/sdk-v1.0.0.jar') |
Nah, sampai disitu kita sudah bisa memanfaatkanMotion SDK. Sekarang buka MainActivity.Java lalu kita deklarasikan Smotion dan SmotionPedometer di class tersebut
1 2 |
private Smotion mMotion; private SmotionPedometer mPedometer; |
Lalu untuk menginisialisasikan Smotion, ketikan kode berikut didalam method onCreate
1 2 3 4 5 6 |
mMotion = new Smotion(); try { mMotion.initialize(this); } catch (SsdkUnsupportedException e) { e.printStackTrace(); } |
Next, untuk mendapatkan informasi dari SmotionPedometer kita tambahkan listener berikut
1 2 3 4 5 6 7 |
final SmotionPedometer.ChangeListener changeListener = new SmotionPedometer.ChangeListener() { @Override public void onChanged(SmotionPedometer.Info info) { double speed = info.getSpeed(); } } |
Kita sudah bisa dapatkan value berupa kecepatan dari SmotionPedometer. Sebenarnya tidak hanya informasi kecepatan saja yang dapat kita ambil, kamu bisa mengambil informasi lainnya seperti informasi jumlah pembakaran kalori, jarak yang ditempuh, jumlah langkah, dan juga status (berjalan, berlari, diam, dsb).
Beberapa informasi dari SmotionPedometer dapat kamu ambil dengan fungsi dibawah ini :
- getSpeed(), untuk mengambil data kecepatan.
- getDistance(), untuk mengambil data jarak yang ditempuh.
- getCalorie(), untuk mengambil data jumlah pembakaran kalori.
- getCount(int type), untuk mengambil data setiap langkahnya.
- getStatus(), untuk mengambil data status (berjalan, berlari, diam, dll).
Sekarang saatnya menampilkan informasi tersebut di aplikasi kita. Tapi rasanya kurang menarik kalau hanya menampilkan informasi dalam bentuk text. Mari kita coba menampilkan informasi tersebut dalam bentuk Speed Viewsupaya lebih menarik.
Kita akan menggunakan library SpeedView dari Anas Altair (anastr) yang bisa kamu pakai untuk menampilkan speed dalam berbagai macam bentuk gauge.
Tambahkan dependencie berikut pada build.gradle
1 |
compile 'com.github.anastr:speedviewlib:1.1.4' |
Lalu buka activity_main.xml dan tambahkan SpeedView
1 2 3 4 |
<com.github.anastr.speedviewlib.SpeedView android:id="@+id/speedometer" android:layout_width="250dp" android:layout_height="wrap_content" /> |
Untuk menampilkan speed dalam SpeedView tersebut kita gunakan kode berikut didalam listener SmotionPedometer yang tadi kita buat :
1 |
speedView.speedTo((float) speed); |
Kurang lebih kode MainActivity.Java lengkapnya seperti ini :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
public class MainActivity extends AppCompatActivity { private Gauge speedView; private Smotion mMotion; private SmotionPedometer mPedometer; final SmotionPedometer.ChangeListener changeListener = new SmotionPedometer.ChangeListener() { @Override public void onChanged(SmotionPedometer.Info info) { double speed = info.getSpeed() * 1.60934; speedView.speedTo((float) speed); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); speedView = (Gauge) findViewById(R.id.speedometer); mMotion = new Smotion(); try { mMotion.initialize(this); } catch (SsdkUnsupportedException e) { e.printStackTrace(); } mPedometer = new SmotionPedometer(Looper.getMainLooper(), mMotion); mPedometer.start(changeListener); } } |
Finish! Run aplikasinya dan silahkan test aplikasinya dengan cara berlari atau berjalan. Kamu bisa mengembangkan aplikasi ini lebih lengkap dengan menampilkan lebih banyak lagi informasi yang kamu inginkan.
Masih banyak fitur menarik di Motion SDK yang belum kita bahas di sini, untuk pembahasan lebih jauh silakan kunjungi akademi Samsung Galaxy SDK (https://www.dicoding.com/academies/37). Jika ada pertanyaan, saran atau masukan jangan sungkan untuk menuliskannya di kolom komentar.
Selamat belajar, semoga bermanfaat, dan nantikan tutorial Samsung Galaxy SDK selanjutnya.