/**
* Created by stevefat on 2017/2/27.
*/
public class BaseActivity extends AppCompatActivity {
private List<String> needPermission;
private final int REQUEST_CODE_PERMISSION = 0;
private String[] permissionArray = new String[]{
Manifest.permission.READ_CONTACTS,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.SEND_SMS,
Manifest.permission.CAMERA,
Manifest.permission.RECORD_AUDIO,
Manifest.permission.ACCESS_COARSE_LOCATION
};
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public void askMultiplePermission() {
needPermission = new ArrayList<>();
for (String permissionName :
permissionArray) {
if (!PermissionHelper.checkIsAskPermission(this, permissionName)) {
needPermission.add(permissionName);
}
}
if (needPermission.size() > 0) {
//开始申请权限
ActivityCompat.requestPermissions(this, needPermission.toArray(new String[needPermission.size()]), REQUEST_CODE_PERMISSION);
} else {
//获取数据
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
// super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case REQUEST_CODE_PERMISSION:
Map<String, Integer> permissionMap = new HashMap<>();
for (String name :
needPermission) {
permissionMap.put(name, PackageManager.PERMISSION_GRANTED);
}
for (int i = 0; i < permissions.length; i++) {
permissionMap.put(permissions[i], grantResults[i]);
}
if (checkIsAskPermissionState(permissionMap, permissions)) {
//获取数据
} else {
//提示权限获取不完成,可能有的功能不能使用
}
break;
}
}
public boolean checkIsAskPermission(Context context, String permission) {
if (ContextCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
} else {
return true;
}
}
public boolean checkIsAskPermissionState(Map<String, Integer> maps, String[] list) {
for (int i = 0; i < list.length; i++) {
if (maps.get(list[i]) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
return true;
}
}