BasePermissionActivity package com.hf.common.activity;import android.Manifest;import android.content.pm.PackageManager;import android.support.annotation.NonNull;import android.support.v4.app.ActivityCompat;import android.support.v4.content.
          package com.hf.common.activity;
import android.Manifest;
import android.content.pm.PackageManager;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
/**
 * Base activity for permission
 */
public abstract class BasePermissionActivity extends AppCompatActivity {
    private void checkPermission() {
        boolean needRequest = false;
        String[] permissions = getPermissionList();
        // check permissions
        for (String permission : permissions) {
            if (PackageManager.PERMISSION_GRANTED != ContextCompat.checkSelfPermission(this, permission)) {
                needRequest = true;
                break;
            }
        }
        // request permission
        if (needRequest) {
            ActivityCompat.requestPermissions(this, permissions, 0);
        }
    }
    public abstract String[] getPermissionList();
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        for (int result : grantResults) {
            if (PackageManager.PERMISSION_GRANTED != result) {
                // finish if permission is not granted
                finish();
            }
        }
    }
    @Override
    protected void onResume() {
        super.onResume();
        // check permission
        checkPermission();
    }
}
        
        