Android系统对应用程序的权限控制非常严格。应用在访问系统资源(如相机、联系人、位置信息等)时,需要先向用户获取相应的权限。否则,应用将无法访问这些资源,甚至可能崩溃。以下是解决Android权限问题的示例代码:
1.检查是否拥有所需权限
if (ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.READ_CONTACTS)
!= PackageManager.PERMISSION_GRANTED) {
// 如果没有所需权限,则向用户申请
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.READ_CONTACTS},
MY_PERMISSIONS_REQUEST_READ_CONTACTS);
}
2.处理用户对权限申请的响应
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_READ_CONTACTS: {
// 如果请求被取消,则结果数组为空
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 权限已授予,执行相应的操作
} else {
// 权限被拒绝,禁用相关功能
}
return;
}
}
}
3.在AndroidManifest.xml中声明应用所需的权限