16
16
package com .github .barteksc .sample ;
17
17
18
18
import android .content .Intent ;
19
+ import android .content .pm .PackageManager ;
19
20
import android .database .Cursor ;
20
21
import android .net .Uri ;
21
22
import android .provider .OpenableColumns ;
23
+ import android .support .v4 .app .ActivityCompat ;
24
+ import android .support .v4 .content .ContextCompat ;
22
25
import android .support .v7 .app .AppCompatActivity ;
23
26
import android .util .Log ;
24
27
@@ -45,8 +48,10 @@ public class PDFViewActivity extends AppCompatActivity implements OnPageChangeLi
45
48
private static final String TAG = PDFViewActivity .class .getSimpleName ();
46
49
47
50
private final static int REQUEST_CODE = 42 ;
51
+ public static final int PERMISSION_CODE = 42042 ;
48
52
49
53
public static final String SAMPLE_FILE = "sample.pdf" ;
54
+ public static final String READ_EXTERNAL_STORAGE = "android.permission.READ_EXTERNAL_STORAGE" ;
50
55
51
56
@ ViewById
52
57
PDFView pdfView ;
@@ -61,6 +66,23 @@ public class PDFViewActivity extends AppCompatActivity implements OnPageChangeLi
61
66
62
67
@ OptionsItem (R .id .pickFile )
63
68
void pickFile () {
69
+ int permissionCheck = ContextCompat .checkSelfPermission (this ,
70
+ READ_EXTERNAL_STORAGE );
71
+
72
+ if (permissionCheck != PackageManager .PERMISSION_GRANTED ) {
73
+ ActivityCompat .requestPermissions (
74
+ this ,
75
+ new String []{READ_EXTERNAL_STORAGE },
76
+ PERMISSION_CODE
77
+ );
78
+
79
+ return ;
80
+ }
81
+
82
+ launchPicker ();
83
+ }
84
+
85
+ void launchPicker () {
64
86
Intent intent = new Intent (Intent .ACTION_GET_CONTENT );
65
87
intent .setType ("application/pdf" );
66
88
startActivityForResult (intent , REQUEST_CODE );
@@ -160,4 +182,22 @@ public void printBookmarksTree(List<PdfDocument.Bookmark> tree, String sep) {
160
182
}
161
183
}
162
184
}
185
+
186
+ /**
187
+ * Listener for response to user permission request
188
+ * @param requestCode Check that permission request code matches
189
+ * @param permissions Permissions that requested
190
+ * @param grantResults Whether permissions granted
191
+ */
192
+ @ Override
193
+ public void onRequestPermissionsResult (int requestCode , String permissions [],
194
+ int [] grantResults ) {
195
+ if (requestCode == PERMISSION_CODE ) {
196
+ if (grantResults .length > 0
197
+ && grantResults [0 ] == PackageManager .PERMISSION_GRANTED ) {
198
+ launchPicker ();
199
+ }
200
+ }
201
+ }
202
+
163
203
}
0 commit comments