android - 如何以编程方式授予权限
问题描述
在下面的代码中,我正在检查可用性以及开发人员是否在清单文件中授予了权限。如果清单中尚未授予权限,如代码中所述,则应以编程方式授予权限并“或据我所知”添加到清单中。
我从清单中删除了这三个权限,然后启动了应用程序。但是,该应用程序崩溃了。我希望它应该运行,因为丢失的权限会自动/以编程方式授予。
请让我知道如何修改以下代码以实现该目标。
**代码:
String[] PermissionsLocation =
{
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.INTERNET
};
private void checkPermissions() {
int iter = 0;
for (String p : PermissionsLocation) {
if (ContextCompat.checkSelfPermission(this, p) != getPackageManager().PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(MainActivity.this, PermissionsLocation, 101 + iter);
}
++iter;
}
}
解决方案
看看,如果有帮助
if(ContextCompat.checkSelfPermission(mActivity,Manifest.permission.INETRNET) == PackageManager.PERMISSION_GRANTED){
// Internet permission granted
Toast.makeText(mContext,"Permission granted.",Toast.LENGTH_SHORT).show();
}else {
// Internet permission not granted
Toast.makeText(mContext,"Permission not granted.",Toast.LENGTH_SHORT).show();
}
推荐阅读
- c# - 如何在 Xamarin.IOS 中实现进程间通信 (IPC)
- laravel - 渴望加载分页
- php - 使用木材在“发布”数组中未设置的问题
- perl - Perl:为什么不能除法?
- jquery - 如何在查找字段中设置值
- android - 默认情况下,LinearLayout 内的 ImageView 在侧面有边距
- android - 在 EditText 字段中键入时,“完成”按钮不再可见
- internet-explorer - 由于参数中的分号,来自 Microsoft Edge 和 IE 的 S3 PUT 请求失败
- android - 未在 Android 8 和 9 上授予可选的危险权限 READ_PHONE_STATE?
- java - 用于 RelativeLayout 的 Android 多点触控 lisiner