Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.nus.app1;
- import android.Manifest;
- import android.app.Activity;
- import android.content.Intent;
- import android.content.pm.PackageManager;
- import android.net.Uri;
- import android.os.Bundle;
- import android.os.Environment;
- import android.os.StrictMode;
- import android.provider.MediaStore;
- import android.view.View;
- import android.widget.Button;
- import android.widget.ImageView;
- import android.widget.Toast;
- import androidx.core.app.ActivityCompat;
- import androidx.core.content.ContextCompat;
- import java.io.File;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- public class CameraActivity extends Activity
- {
- private static final int PERMISSION_REQUEST_CODE = 1;
- ImageView iv;
- Button btncapture;
- private Uri file;
- public void onCreate(Bundle b)
- {
- StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
- StrictMode.setVmPolicy(builder.build());
- super.onCreate(b);
- setContentView(R.layout.cameralayout);
- iv=findViewById(R.id.iv);
- btncapture=findViewById(R.id.btncapture);
- btncapture.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if(checkPermission())
- {
- takePicture();
- }
- else
- {
- requestPermission();
- }
- }
- });
- }
- private boolean checkPermission()
- {
- int camerapermission = ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.CAMERA);
- int storagepermission = ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE);
- if (camerapermission == PackageManager.PERMISSION_GRANTED && storagepermission ==PackageManager.PERMISSION_GRANTED)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- private void requestPermission()
- {
- ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA,Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSION_REQUEST_CODE);
- }
- public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults)
- {
- switch (requestCode)
- {
- case PERMISSION_REQUEST_CODE:
- if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED)
- {
- Toast.makeText(getApplicationContext(),"Permission accepted", Toast.LENGTH_LONG).show();
- takePicture();
- }
- else
- {
- Toast.makeText(getApplicationContext(),"Permission denied", Toast.LENGTH_LONG).show();
- }
- }
- }
- public void takePicture() {
- Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
- file = Uri.fromFile(getOutputMediaFile());
- intent.putExtra(MediaStore.EXTRA_OUTPUT, file);
- startActivityForResult(intent, 100);
- }
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (requestCode == 100) {
- if (resultCode == RESULT_OK) {
- iv.setImageURI(file);
- }
- }
- }
- private static File getOutputMediaFile(){
- File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
- Environment.DIRECTORY_PICTURES), "CameraDemo");
- if (!mediaStorageDir.exists()){
- if (!mediaStorageDir.mkdirs()){
- return null;
- }
- }
- String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
- return new File(mediaStorageDir.getPath() + File.separator +
- "IMG_"+ timeStamp + ".jpg");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement