|
19 | 19 |
|
20 | 20 | package org.geometerplus.android.fbreader; |
21 | 21 |
|
| 22 | +import android.Manifest; |
22 | 23 | import android.annotation.TargetApi; |
23 | 24 | import android.app.SearchManager; |
24 | 25 | import android.content.ActivityNotFoundException; |
|
31 | 32 | import android.os.Build; |
32 | 33 | import android.os.Bundle; |
33 | 34 | import android.os.PowerManager; |
| 35 | +import android.support.annotation.NonNull; |
| 36 | +import android.util.Log; |
34 | 37 | import android.view.KeyEvent; |
35 | 38 | import android.view.Menu; |
36 | 39 | import android.view.MenuItem; |
|
89 | 92 | import java.util.List; |
90 | 93 | import java.util.Map; |
91 | 94 |
|
92 | | -public final class FBReader extends FBReaderMainActivity implements ZLApplicationWindow { |
| 95 | +import pub.devrel.easypermissions.AfterPermissionGranted; |
| 96 | +import pub.devrel.easypermissions.EasyPermissions; |
| 97 | + |
| 98 | +public final class FBReader extends FBReaderMainActivity implements ZLApplicationWindow , EasyPermissions.PermissionCallbacks{ |
| 99 | + private static final String TAG = "FBReader"; |
93 | 100 | public static final int RESULT_DO_NOTHING = RESULT_FIRST_USER; |
94 | 101 | public static final int RESULT_REPAINT = RESULT_FIRST_USER + 1; |
| 102 | + private static final int RC_CAMERA_AND_LOCATION = 110; |
95 | 103 |
|
96 | 104 | public static Intent defaultIntent(Context context) { |
97 | 105 | return new Intent(context, FBReader.class) |
@@ -220,11 +228,22 @@ public void run() { |
220 | 228 | } |
221 | 229 | }; |
222 | 230 | } |
223 | | - |
| 231 | + @AfterPermissionGranted(RC_CAMERA_AND_LOCATION) |
| 232 | + private void methodRequiresTwoPermission() { |
| 233 | + String[] perms = {Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}; |
| 234 | + if (EasyPermissions.hasPermissions(this, perms)) { |
| 235 | + // Already have permission, do the thing |
| 236 | + // ... |
| 237 | + } else { |
| 238 | + // Do not have permissions, request them now |
| 239 | + EasyPermissions.requestPermissions(this, "需要sdcard读写权限", |
| 240 | + RC_CAMERA_AND_LOCATION, perms); |
| 241 | + } |
| 242 | + } |
224 | 243 | @Override |
225 | 244 | protected void onCreate(Bundle icicle) { |
226 | 245 | super.onCreate(icicle); |
227 | | - |
| 246 | + methodRequiresTwoPermission(); |
228 | 247 | bindService( |
229 | 248 | new Intent(this, DataService.class), |
230 | 249 | DataConnection, |
@@ -339,19 +358,6 @@ public void run() { |
339 | 358 | }); |
340 | 359 | } |
341 | 360 | } |
342 | | - |
343 | | -// TransUtils.requestNet("good morning", new OnGetResult() { |
344 | | -// @Override |
345 | | -// public void onGetResult(final String result) { |
346 | | -// runOnUiThread(new Runnable() { |
347 | | -// @Override |
348 | | -// public void run() { |
349 | | -// Toast.makeText(FBReader.this, result, Toast.LENGTH_LONG).show(); |
350 | | -// } |
351 | | -// }); |
352 | | -// } |
353 | | -// }); |
354 | | - |
355 | 361 | } |
356 | 362 |
|
357 | 363 | @Override |
@@ -517,6 +523,16 @@ private void initPluginActions() { |
517 | 523 | ); |
518 | 524 | } |
519 | 525 |
|
| 526 | + @Override |
| 527 | + public void onPermissionsGranted(int requestCode, List<String> perms) { |
| 528 | + Log.i(TAG, "获取权限成功" + perms); |
| 529 | + } |
| 530 | + |
| 531 | + @Override |
| 532 | + public void onPermissionsDenied(int requestCode, List<String> perms) { |
| 533 | + Log.i(TAG, "获取权限失败" + perms); |
| 534 | + } |
| 535 | + |
520 | 536 | private class TipRunner extends Thread { |
521 | 537 | TipRunner() { |
522 | 538 | setPriority(MIN_PRIORITY); |
@@ -1085,4 +1101,11 @@ public void hideDictionarySelection() { |
1085 | 1101 | myFBReaderApp.getViewWidget().reset(); |
1086 | 1102 | myFBReaderApp.getViewWidget().repaint(); |
1087 | 1103 | } |
| 1104 | + |
| 1105 | + @Override |
| 1106 | + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, |
| 1107 | + @NonNull int[] grantResults) { |
| 1108 | + super.onRequestPermissionsResult(requestCode, permissions, grantResults); |
| 1109 | + EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this); |
| 1110 | + } |
1088 | 1111 | } |
0 commit comments