@@ -36,12 +36,10 @@ class MainActivity : AppCompatActivity() {
36
36
startActivity(Intent (this , GalleryActivity ::class .java))
37
37
}
38
38
findViewById<View >(R .id.button_camera).setOnClickListener {
39
- if (ContextCompat .checkSelfPermission(this , Manifest .permission.CAMERA )
40
- == PackageManager .PERMISSION_DENIED
41
- ) {
39
+ if (! hasCameraPermission() || ! hasStoragePermission()) {
42
40
ActivityCompat .requestPermissions(
43
41
this ,
44
- arrayOf(Manifest .permission.CAMERA ),
42
+ arrayOf(Manifest .permission.CAMERA , Manifest .permission. WRITE_EXTERNAL_STORAGE ),
45
43
REQUEST_CAMERA
46
44
)
47
45
} else {
@@ -55,13 +53,30 @@ class MainActivity : AppCompatActivity() {
55
53
permissions : Array <String >,
56
54
grantResults : IntArray
57
55
) {
58
- if (requestCode == REQUEST_CAMERA && grantResults.size != 1 || grantResults[0 ] == PackageManager .PERMISSION_GRANTED ) {
56
+ if (requestCode == REQUEST_CAMERA && grantResults.size == 2
57
+ && grantResults[0 ] == PackageManager .PERMISSION_GRANTED
58
+ && grantResults[1 ] == PackageManager .PERMISSION_GRANTED
59
+ ) {
59
60
startActivity(Intent (this , CameraActivity ::class .java))
60
61
} else {
61
62
super .onRequestPermissionsResult(requestCode, permissions, grantResults)
62
63
}
63
64
}
64
65
66
+ private fun hasCameraPermission (): Boolean {
67
+ return ContextCompat .checkSelfPermission(
68
+ this ,
69
+ Manifest .permission.CAMERA
70
+ ) == PackageManager .PERMISSION_GRANTED
71
+ }
72
+
73
+ private fun hasStoragePermission (): Boolean {
74
+ return ContextCompat .checkSelfPermission(
75
+ this ,
76
+ Manifest .permission.WRITE_EXTERNAL_STORAGE
77
+ ) == PackageManager .PERMISSION_GRANTED
78
+ }
79
+
65
80
companion object {
66
81
private const val REQUEST_CAMERA = 1
67
82
}
0 commit comments