Я пытаюсь использовать библиотеку cameraKit для захвата изображения и сохранения его в моей галерее с помощью метода onClick. Метод onClick не работает, и я не могу понять, почему файлы не сохраняются в галерее или DCIM.
Я добавил разрешение для приложения на запись во внешнее хранилище, но это не имело значения.
package com.example.camerakitqr;
public class Scanner extends AppCompatActivity {
private CameraKitView cameraKitView;
private Button detectButton;
//GraphicOverlay graphicOverlay;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
cameraKitView = findViewById(R.id.camera);
detectButton = findViewById(R.id.detectButton);
detectButton.setOnClickListener(detectOnClickListener);
}
@Override
protected void onStart() {
super.onStart();
cameraKitView.onStart();
}
@Override
protected void onResume() {
super.onResume();
cameraKitView.onResume();
}
@Override
protected void onPause() {
cameraKitView.onPause();
super.onPause();
}
@Override
protected void onStop() {
cameraKitView.onStop();
super.onStop();
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
cameraKitView.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
private View.OnClickListener detectOnClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
cameraKitView.captureImage(new CameraKitView.ImageCallback() {
@Override
public void onImage(CameraKitView cameraKitView, byte[] photo ) {
File savedPhoto = new File(Environment.getExternalStorageDirectory(), "photo.jpg");
try{
FileOutputStream outputStream = new FileOutputStream(savedPhoto.getPath());
outputStream.write(photo);
outputStream.close();
Toast.makeText(getApplicationContext(), "File saved", Toast.LENGTH_SHORT).show();
} catch (java.io.IOException e){
e.printStackTrace();
Log.e("DEMO", "Not saved");
}
}
});
}
};