首页 > 解决方案 > 如何以编程方式授予权限

问题描述

在下面的代码中,我正在检查可用性以及开发人员是否在清单文件中授予了权限。如果清单中尚未授予权限,如代码中所述,则应以编程方式授予权限并“或据我所知”添加到清单中。

我从清单中删除了这三个权限,然后启动了应用程序。但是,该应用程序崩溃了。我希望它应该运行,因为丢失的权限会自动/以编程方式授予。

请让我知道如何修改以下代码以实现该目标。

**代码:

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;
    }
}

标签: androidpermissionsandroid-manifest

解决方案


看看,如果有帮助

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();
                }

推荐阅读