Android 6.0及以上 权限适配

This commit is contained in:
kehaoyuan
2017-09-13 18:23:55 +08:00
parent 2e84aeaccf
commit 85031e89b6
10 changed files with 223 additions and 151 deletions

View File

@ -2,6 +2,8 @@ package com.gh.base;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
@ -28,13 +30,16 @@ import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import butterknife.ButterKnife;
import pub.devrel.easypermissions.AfterPermissionGranted;
import pub.devrel.easypermissions.EasyPermissions;
import static com.gh.common.util.EntranceUtils.KEY_DATA;
import static com.gh.common.util.EntranceUtils.KEY_ENTRANCE;
public abstract class BaseActivity extends BaseAppCompatToolBarActivity {
public abstract class BaseActivity extends BaseAppCompatToolBarActivity implements EasyPermissions.PermissionCallbacks{
protected String mEntrance;
private boolean mIsPause;
@ -178,4 +183,41 @@ public abstract class BaseActivity extends BaseAppCompatToolBarActivity {
// DownloadManager.getInstance(this).initGameMap();
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
}
@Override
public void onPermissionsDenied(int requestCode, List<String> perms) {
}
@Override
public void onPermissionsGranted(int requestCode, List<String> perms) {
}
// tag: 防止一个页面可以多次调用
protected void checkPermissions(String[] permissions, String tag) {
if (EasyPermissions.hasPermissions(this, permissions)) {
onPermissionsSuccess(tag);
} else {
checkAndRequestPermission(permissions, tag);
}
}
private final static int REQUEST_PERMISSION_TAG = 10012;
@AfterPermissionGranted(REQUEST_PERMISSION_TAG)
private void checkAndRequestPermission(String[] permissions, String tag) {
if (EasyPermissions.hasPermissions(this, permissions)) {
onPermissionsSuccess(tag);
} else {
ActivityCompat.requestPermissions(this, permissions, REQUEST_PERMISSION_TAG);
}
}
// 权限申请成功回调
protected void onPermissionsSuccess(String tag){}
}