Created
May 29, 2017 20:55
-
-
Save Zaniyar/aac82363831894e465ee99895b10210d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
photoBtn.setOnClickListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
v.setVisibility(View.INVISIBLE); | |
if ((ContextCompat.checkSelfPermission(CampaignDetail.this, | |
Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) | |
|| (ContextCompat.checkSelfPermission(CampaignDetail.this, | |
Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)) | |
{ | |
ActivityCompat.requestPermissions | |
(CampaignDetail.this, new String[]{ | |
Manifest.permission.READ_EXTERNAL_STORAGE, | |
Manifest.permission.WRITE_EXTERNAL_STORAGE | |
}, MY_PERMISSIONS_REQUEST_READ_AND_WRITE_EXTERNAL_STORAGE); | |
} | |
//All reading/writing stuff is implemented in this method | |
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); | |
takePictureIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); | |
File pictureDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); | |
String pictureName = getPictureName(); | |
File imageFile = new File(pictureDirectory, pictureName); | |
//pictureUri = Uri.fromFile(imageFile); | |
//pictureUri = Uri.fromFile(imageFile); | |
pictureUri = FileProvider.getUriForFile(getApplication(), getApplicationContext().getPackageName() + ".provider", imageFile); | |
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { | |
takePictureIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); | |
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { | |
ClipData clip = | |
ClipData.newUri(getContentResolver(), "A photo", pictureUri); | |
takePictureIntent.setClipData(clip); | |
takePictureIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); | |
} else { | |
List<ResolveInfo> resInfoList = | |
getPackageManager() | |
.queryIntentActivities(takePictureIntent, PackageManager.MATCH_DEFAULT_ONLY); | |
for (ResolveInfo resolveInfo : resInfoList) { | |
String packageName = resolveInfo.activityInfo.packageName; | |
grantUriPermission(packageName, pictureUri, | |
Intent.FLAG_GRANT_WRITE_URI_PERMISSION); | |
} | |
} | |
takePictureIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); | |
takePictureIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); | |
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, pictureUri); | |
if (takePictureIntent.resolveActivity(getPackageManager()) != null) { | |
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); | |
} | |
} | |
}); | |
@Override | |
protected void onActivityResult(int requestCode, int resultCode, Intent data) { | |
callbackManager.onActivityResult(requestCode, resultCode, data); | |
if (resultCode == RESULT_OK) { | |
if (requestCode == REQUEST_IMAGE_CAPTURE) { | |
//Here you can get the thumbnail! - but you can't get thumbnail + foto at same time! | |
// Bundle extras = data.getExtras(); | |
// Bitmap imageBitmap = (Bitmap) extras.get("data"); | |
// imageView.setImageBitmap(imageBitmap); | |
try { | |
Bitmap imageBitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), Uri.parse(String.valueOf(pictureUri))); | |
imageView.setImageBitmap(imageBitmap); | |
//set uploadBtn visible: | |
uploadBtn.setVisibility(View.VISIBLE); | |
} catch (Exception e) { | |
Log.d("Ex", e.toString()); | |
//handle exception | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment