Pilih Laman

sumber : http://agusharyanto.net/wordpress/?p=1462

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.xmltambahkan permission berikut ini.

1 <uses-permission android:name="android.permission.CAMERA" />
2     <uses-permission android:name="android.permission.FLASHLIGHT" />
3     <uses-feature android:name="android.hardware.camera" />
4     <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.

01 <?xml version="1.0" encoding="utf-8"?>
02 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
03     xmlns:tools="http://schemas.android.com/tools"
04     android:id="@+id/activity_main"
05     android:layout_width="match_parent"
06     android:layout_height="match_parent"
07     android:paddingBottom="@dimen/activity_vertical_margin"
08     android:paddingLeft="@dimen/activity_horizontal_margin"
09     android:paddingRight="@dimen/activity_horizontal_margin"
10     android:paddingTop="@dimen/activity_vertical_margin"
11     android:background="#fff"
12     tools:context="tutorialanadroid.agusharyanto.net.senterflashlight.MainActivity">
13
14     <ImageView
15         android:id="@+id/imageViewLight"
16         android:layout_width="256dp"
17         android:layout_height="256dp"
18         android:layout_centerHorizontal="true"
19         android:src="@drawable/light_off" />
20
21     <ImageButton
22         android:id="@+id/imageButton_on_off"
23         android:layout_width="wrap_content"
24         android:layout_height="wrap_content"
25         android:layout_below="@+id/imageViewLight"
26         android:layout_centerHorizontal="true"
27         android:layout_marginTop="50dp"
28         android:background="#fff"
29         android:src="@drawable/button_on" />
30 </RelativeLayout>

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

001 package tutorialanadroid.agusharyanto.net.senterflashlight;
002
003 import android.content.Context;
004 import android.content.DialogInterface;
005 import android.content.pm.PackageManager;
006 import android.hardware.camera2.CameraManager;
007 import android.media.MediaPlayer;
008 import android.os.Build;
009 import android.os.Bundle;
010 import android.support.v7.app.AlertDialog;
011 import android.support.v7.app.AppCompatActivity;
012 import android.view.View;
013 import android.widget.ImageButton;
014 import android.widget.ImageView;
015
016 public class MainActivity extends AppCompatActivity {
017
018     private CameraManager cameraManager;
019     private String cameraId;
020     private ImageButton imangeButtonOnOff;
021     private ImageView imageViewLight;
022     private Boolean isTorchOn;
023     private MediaPlayer mp;
024
025     @Override
026     protected void onCreate(Bundle savedInstanceState) {
027         super.onCreate(savedInstanceState);
028         setContentView(R.layout.activity_main);
029         imangeButtonOnOff = (ImageButton) findViewById(R.id.imageButton_on_off);
030         imageViewLight = (ImageView) findViewById(R.id.imageViewLight);
031         isTorchOn = false;
032         Boolean isFlashAvailable = getApplicationContext().getPackageManager()
033                 .hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
034
035         if (!isFlashAvailable) {
036
037             AlertDialog alert = new AlertDialog.Builder(MainActivity.this)
038                     .create();
039             alert.setTitle("Error !!");
040             alert.setMessage("Device anda tidak mendukung flash light!");
041             alert.setButton(DialogInterface.BUTTON_POSITIVE, "OK"new DialogInterface.OnClickListener() {
042                 public void onClick(DialogInterface dialog, int which) {
043                     // closing the application
044                     finish();
045                     System.exit(0);
046                 }
047             });
048             alert.show();
049             return;
050         }
051
052         cameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
053         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
054             try {
055
056                 cameraId = cameraManager.getCameraIdList()[0];
057
058             }catch(Exception e){
059                 e.printStackTrace();
060             }
061         }
062
063         imangeButtonOnOff.setOnClickListener(new View.OnClickListener() {
064             @Override
065             public void onClick(View v) {
066                 try {
067                     if (isTorchOn) {
068                         turnOffFlashLight();
069                         isTorchOn = false;
070                     else {
071                         turnOnFlashLight();
072                         isTorchOn = true;
073                     }
074                 catch (Exception e) {
075                     e.printStackTrace();
076                 }
077             }
078         });
079     }
080     public void turnOnFlashLight() {
081
082         try {
083             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
084                 cameraManager.setTorchMode(cameraId, true);
085                 playOnOffSound();
086                 imangeButtonOnOff.setImageResource(R.drawable.button_off);
087                 imageViewLight.setImageResource(R.drawable.light_on);
088             }
089         catch (Exception e) {
090             e.printStackTrace();
091         }
092     }
093
094     public void turnOffFlashLight() {
095         try {
096             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
097                 cameraManager.setTorchMode(cameraId, false);
098                 playOnOffSound();
099                 imangeButtonOnOff.setImageResource(R.drawable.button_on);
100                 imageViewLight.setImageResource(R.drawable.light_off);
101             }
102
103         catch (Exception e) {
104             e.printStackTrace();
105         }
106     }
107
108     private void playOnOffSound(){
109
110         mp = MediaPlayer.create(MainActivity.this, R.raw.sound_on_off);
111         mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
112
113             @Override
114             public void onCompletion(MediaPlayer mp) {
115                 // TODO Auto-generated method stub
116                 mp.release();
117             }
118         });
119         mp.start();
120     }
121     @Override
122     protected void onStop() {
123         super.onStop();
124         if(isTorchOn){
125             turnOffFlashLight();
126         }
127     }
128
129     @Override
130     protected void onPause() {
131         super.onPause();
132         if(isTorchOn){
133             turnOffFlashLight();
134         }
135     }
136
137     @Override
138     protected void onResume() {
139         super.onResume();
140         if(isTorchOn){
141             turnOnFlashLight();
142         }
143     }
144
145 }

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