Ошибка:
Attempt to get lenght of null array.
Помогите плиз не могу понять что с этими разрешениями не так:
private void CallCamera() {
File folder = new File("sdcard/camera_app");
if (!folder.exists()) {
folder.mkdir();
}
File image_file = new File(folder, "cam_image.jpg");
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(image_file));
startActivityForResult(cameraIntent, CAM_REQUEST);
}
public void MakePhoto(View view) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
CallCamera();
} else {
if (shouldShowRequestPermissionRationale(Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
Toast.makeText(this, "Nu Avem Permis de salvare a imaginii", Toast.LENGTH_SHORT).show();
}
requestPermissions(new String[] {
Manifest.permission.WRITE_EXTERNAL_STORAGE
}, REQUEST_EXTERNAL_RESULT);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == REQUEST_EXTERNAL_RESULT) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
CallCamera();
} else {
Toast.makeText(this, "Nu avem permis de a salva foto", Toast.LENGTH_SHORT).show();
}
} else {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// String path = "sdcard/camera_app/cam_image.jpg";
// ImageView imageView;
// imageView = (ImageView) findViewById(R.id.camera);
// imageView.setImageDrawable(Drawable.createFromPath(path));
Toast.makeText(this, "Succes!", Toast.LENGTH_SHORT).show();
}
Как минимум на запрос разрешение использовать камерой отвечает вот эта переменная:
Manifest.permission.CAMERA
Вы же проверяете только разрешение на запись.
Так же у вас очевидная ошибка:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
CallCamera();
} else {
Toast.makeText(this, "Nu avem permis de a salva foto", Toast.LENGTH_SHORT).show();
}
Вы обращаетесь к переменной grantResults[0] с надеждой, что в нем будет запись.
Attempt to get lenght of null aray
Говорит о том, что вы обращаетесь к массиву, в котором нет каких либо записей. В вашем случае длина массива == 0, отсюда и ошибка. Добавьте условие grantResults.length > 0 && ...
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости