Ошибка:
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 &&
...
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый деньНеобходима подсказка относительно логина через Facebook для AndroidTv
Добрый день, коллеги! Вопрос скорее из разряда теоретических - возможно ли это сделать и возможно ли посредством только СSS, а не правильно...
Есть ли элемент в css, наподобие hover, только чтобы эффект начинался сразу при открытии страницы, а не при наведении на элемент?