Tutorial Android Membuat Aplikasi Senter Flash Light

Dulu kalau di rumah mati lampu kita sibuk cari lilin untuk memberikan sedikit penerangan agar rumah tidak gelap gulita. Pertanyaanya kalau dalam kondisi gelap susah cari lilinnya lalu yang kita lakukan adalah cari senter untuk memabantu kita melangkah agar tidak nubruk atau tersandung. Masalahnya rata-rata orang sekarang tidak punya senter sebagai gantinya kita menfaatkan HP Android kita menjadi senter dengan memanfaatkan lampu Flash Camera aplikasi yang digunakan biasanya aplikasi Flash Light.

Saya berfikir keren juga nih yang bisa buat aplikasi Flash Light. Kalau orang lain bisa tentu kita juga bisa itulah jargon yang para motivator sering berikan. Jujur saja saat ini untuk belajar sesuatu itu lebih mudah dibandingkan dengan jaman saya kuliah dulu. Kalau dulu untuk buat aplikasi seperti ini saya harus cari bukunya dan cari buku ini bukan perkara mudah. Kalau saat ini untuk belajar programming kita tinggal buka Google lalu ketikan keyword yang kita inginkan misalnya untuk membuat aplikasi senter flash light ini kita bisa ketikan “Android Flash Light Tutorial” akan muncullah link-link website yang membahas tentang ini tentunya sebagian besar artikelnya berbahasa inggris. Jadi untuk paham artikelnya kita wajib menguasai bahasa inggris, malukan kalau nyanyinya bahasa inggris tapi tidak tahu artinya. Jangan bisanya cuma I Love You dan I Love You too saja tapi harus banyak vocabulary yang harus kita kuasai apalagi sekarang banyak seminar-seminar IT yang mengundang Pembicara-pembicara dari Luar Negeri. Untuk itu adik-adik mahasiswa harus bisa bahasa inggris sebagai salah satu modal meraih masa depan yang lebih cerah.

Kalau mau jadi Developer Android yang sejati, wajib hukumnya untuk menguasai pemrograman Java. Karena bahasa java lah yang digunakan untuk membuat aplikasi Android. Kalau tidak ngerti java bisa pening nanti kepala kalu ketemu Error. Kalau dah pening carilah teman atau dosen yang bisa membantu kita. Para Dosen tentu senang kalau mahasiswanya aktif bertanya. Khusus untuk teman yang sering bantuin kita. Sekali-kali kalau ada rezeki lebih traktirlah dia misalnya traktir bakso, somay, sate atau nasi goreng. Bahasa Java juga saya sarankan untuk ditaklukan oleh adik-adik mahasiswa.

Kembali ke Laptop eh maksudnya ke Tutorial Membuat Aplikasi Flash Light. Sekarang mari kita mulai langkah-langkahnya

1. Buka Android Studio buat project baru dengan nama “Senter Flash Light”.

Klik Next terus sampai Finish

2. Kita butuh gambar untuk tombol on, tombol off dan bola lampu on, bola lampu off. Kalian bisa cari di internet untuk gambar-gambarnya.

Gambar Nama file
Tombol on button_on.png
Tombol off button_off.png
Bola lampu on light_on.png
Bola lampu off light_off.png

Pastekan file-file gambar diatas ke direktory res→drawable

3. kita juga perlu suara ketika tombol on atau tombol off disentuh. Bisa dicari juga diinternet yah. Mahasiswa pasti bisa… semangat..

4. pada directory res buat directory baru dengan nama raw pastekan file sound_on_off.mp3 ke directory raw.

5. Agar bisa mengakses atau menggunakan lampu flash light camera, kita perlu menambahkan permission di AndroidManifest.xml tambahkan permission berikut ini.

<uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.FLASHLIGHT" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.flash" />

6. Sekarang kita kebagian user interfacenya, untuk itu pada directory res→layout edit activity_main.xml lalu ketikan kode berikut.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:background="#fff"
    tools:context="tutorialanadroid.agusharyanto.net.senterflashlight.MainActivity">

    <ImageView
        android:id="@+id/imageViewLight"
        android:layout_width="256dp"
        android:layout_height="256dp"
        android:layout_centerHorizontal="true"
        android:src="@drawable/light_off" />

    <ImageButton
        android:id="@+id/imageButton_on_off"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/imageViewLight"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"
        android:background="#fff"
        android:src="@drawable/button_on" />
</RelativeLayout>

7. sekarang mari kita ke otak aplikasinya, edit MainActivity.java lalu ketikan kode berikut.

package tutorialanadroid.agusharyanto.net.senterflashlight;

import android.content.Context;
import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.hardware.camera2.CameraManager;
import android.media.MediaPlayer;
import android.os.Build;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

    private CameraManager cameraManager;
    private String cameraId;
    private ImageButton imangeButtonOnOff;
    private ImageView imageViewLight;
    private Boolean isTorchOn;
    private MediaPlayer mp;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imangeButtonOnOff = (ImageButton) findViewById(R.id.imageButton_on_off);
        imageViewLight = (ImageView) findViewById(R.id.imageViewLight);
        isTorchOn = false;
        Boolean isFlashAvailable = getApplicationContext().getPackageManager()
                .hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);

        if (!isFlashAvailable) {

            AlertDialog alert = new AlertDialog.Builder(MainActivity.this)
                    .create();
            alert.setTitle("Error !!");
            alert.setMessage("Device anda tidak mendukung flash light!");
            alert.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    // closing the application
                    finish();
                    System.exit(0);
                }
            });
            alert.show();
            return;
        }

        cameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            try {

                cameraId = cameraManager.getCameraIdList()[0];

            }catch(Exception e){
                e.printStackTrace();
            }
        }

        imangeButtonOnOff.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    if (isTorchOn) {
                        turnOffFlashLight();
                        isTorchOn = false;
                    } else {
                        turnOnFlashLight();
                        isTorchOn = true;
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
    public void turnOnFlashLight() {

        try {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                cameraManager.setTorchMode(cameraId, true);
                playOnOffSound();
                imangeButtonOnOff.setImageResource(R.drawable.button_off);
                imageViewLight.setImageResource(R.drawable.light_on);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void turnOffFlashLight() {
        try {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                cameraManager.setTorchMode(cameraId, false);
                playOnOffSound();
                imangeButtonOnOff.setImageResource(R.drawable.button_on);
                imageViewLight.setImageResource(R.drawable.light_off);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void playOnOffSound(){

        mp = MediaPlayer.create(MainActivity.this, R.raw.sound_on_off);
        mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

            @Override
            public void onCompletion(MediaPlayer mp) {
                // TODO Auto-generated method stub
                mp.release();
            }
        });
        mp.start();
    }
    @Override
    protected void onStop() {
        super.onStop();
        if(isTorchOn){
            turnOffFlashLight();
        }
    }

    @Override
    protected void onPause() {
        super.onPause();
        if(isTorchOn){
            turnOffFlashLight();
        }
    }

    @Override
    protected void onResume() {
        super.onResume();
        if(isTorchOn){
            turnOnFlashLight();
        }
    }

}

8. Kalau kita lihat kode diatas belum menerapkan self permission jadi agar dapat run dengan baik di Android versi Marshmallow keatas kita perlu merubah targetSdkVersion nya menjadi 21 pada file build.gradle (module:app)

9. Setelah semua selesai mari kita run projectnya. Sentuh tombol hijau untuk menyalakan lampu Flash Light.

Untuk pdfnya bisa lihat disini

Semoga bermanfaat

Salam Hangat Developer Android

Agus Haryanto

Referensi
https://www.androidtutorialpoint.com/

4 comments to Tutorial Android Membuat Aplikasi Senter Flash Light

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>