Monday, August 1, 2016

MEMBUAT APLIKASI ANDROID MEMBACA SENSOR MAGNETIC FIELD

Kembali lagi saya posting di blog saya ini, kali ini posting saya berhubungan dengan sensor pada device android yaitu magnetic field , tahukah anda bahwa device android sudah di bekali dengan berbagai macam sensor namun tentunya tidak semua device juga yang memiliki banyak sensor, sensor magnetic field sendiri berfungsi untuk mendeteksi medan magnet di sekitar smartphone atau pun untuk penunjang kerja sensor compass, sudah banyak juga aplikasi di playstore yang menggunakan sensor magnetic tersebut contoh nya metal detector dan lain sebagai nya, dan kali ini saya akan memberikan source code Eclipse yang mungkin bisa di kembangkan menjadi lebih baik, kenapa saya harus pake eclipse ?? ya karena laptop saya sudah tua dan berumur jadi tidak memungkinkan menggunakan android studio atau compiler lain nya..hehe, langsung saja pertama-tama buatlah project pada eclipse dengan nama package example.magnetic atau dengan nama masing-masing ,setelah itu copy atau tulis ulang code di bawah:


pada activity_main.xml isikan kode berikut

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/mag_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Magnetometer Raw Data (μT)" />

    <TextView
        android:id="@+id/mag_x"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="X:" />

    <TextView
        android:id="@+id/mag_y"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Y:" />

    <TextView
        android:id="@+id/mag_z"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Z:" />

</LinearLayout>

dan pada Main_Activity.java isikan kode berikut :

package com.example.magnetic;

import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity implements SensorEventListener{

private SensorManager mSensorManager;
private Sensor mMagnetometer;
private TextView axisX, axisY, axisZ;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

axisX = (TextView) findViewById(R.id.mag_x);
axisY = (TextView) findViewById(R.id.mag_y);
axisZ = (TextView) findViewById(R.id.mag_z);

mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mMagnetometer= mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
}

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// apabila ingin menambahkan nilai akurasi sensor.
}

@Override
public void onSensorChanged(SensorEvent event) {
float x = event.values[0];
   float y = event.values[1];
   float z = event.values[2];

   axisX.setText("X: "+x);
   axisY.setText("Y: "+y);
   axisZ.setText("Z: "+z);
}

@Override
 protected void onResume() {
   super.onResume();
   mSensorManager.registerListener(this, mMagnetometer, SensorManager.SENSOR_DELAY_NORMAL);
 }

 @Override
 protected void onPause() {
   super.onPause();
   mSensorManager.unregisterListener(this);
 }
}

setelah selesai cobalah untuk me RUN code di atas apabila tidak terjadi erorr maka bisa mencoba menginstal nya di device android yang memiliki sensor Magnetic Field , apa bila terjadi erorr cobalah untuk mengoreksi pada logchat apa penyebab eror tersebut , di bawah ini scren shoot aplikasi yang sudah saya instal :

icon aplikasi dari eclipse

dan setelah saya jalankan di handphone saya ternyata :

padasaat aplikasi di jalankan nilai sensor tidak terbaca

handphoe baru saya tidak mendukung sensor mangnetic field karena sebelum nya saya menginstal aplikasi ini pada handphone yang lama, pada saat posting inilah saya menginstal kembali hmm.., ya sudahlah saya hanya melampirkan bukti bahwa aplikasi nya berjalan, sekian posting saya kali ini apabila ada kesalahandan pertanyaan silakan isikan di kolom komentar.