Java tutorial
import android.content.Context; import android.media.Ringtone; import android.media.RingtoneManager; import android.net.Uri; import android.os.Build; import android.os.Vibrator; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ToggleButton; import android.hardware.camera2.CameraManager; import android.hardware.camera2.CameraAccessException; import android.hardware.camera2.CameraCharacteristics; public class MainActivity extends AppCompatActivity { private CameraManager mCameraManager; private String mCameraId = null; private ToggleButton mButtonLights; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mButtonLights = (ToggleButton) findViewById(R.id.buttonLights); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { mCameraManager = (CameraManager) this.getSystemService(Context.CAMERA_SERVICE); mCameraId = getCameraId(); if (mCameraId == null) { mButtonLights.setEnabled(false); } else { mButtonLights.setEnabled(true); } } else { mButtonLights.setEnabled(false); } } private String getCameraId() { try { String[] ids = mCameraManager.getCameraIdList(); for (String id : ids) { CameraCharacteristics c = mCameraManager.getCameraCharacteristics(id); Boolean flashAvailable = c.get(CameraCharacteristics.FLASH_INFO_AVAILABLE); Integer facingDirection = c.get(CameraCharacteristics.LENS_FACING); if (flashAvailable != null && flashAvailable && facingDirection != null && facingDirection == CameraCharacteristics.LENS_FACING_BACK) { return id; } } } catch (CameraAccessException e) { e.printStackTrace(); } return null; } public void clickLights(View view) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { try { mCameraManager.setTorchMode(mCameraId, mButtonLights.isChecked()); } catch (CameraAccessException e) { e.printStackTrace(); } } } public void clickVibrate(View view) { ((Vibrator) getSystemService(VIBRATOR_SERVICE)).vibrate(1000); } public void clickSound(View view) { Uri notificationSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); Ringtone ringtone = RingtoneManager.getRingtone(getApplicationContext(), notificationSoundUri); ringtone.play(); } }