常量为fine_location权限android

时间:2017-07-13 13:08:19

标签: android

我搜索了如何初始化requestPermissions并找到以下代码:

if (ActivityCompat.checkSelfPermission((Activity)mContext, 
android.Manifest.permission.ACCESS_FINE_LOCATION) != 
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions((Activity)mContext, new String[]{
        android.Manifest.permission.ACCESS_FINE_LOCATION
}, Integer constant required); 

它需要第三个参数,即FINE LOCATION的Inter常数。 我找不到。请帮帮我。

2 个答案:

答案 0 :(得分:0)

第三个参数是RequestCode。

特定于应用程序的请求代码与报告给onRequestPermissionsResult(int,String [],int [])的结果相匹配。

应该是> = 0。

有关详细信息,请参阅此内容。 ActivityCompat.requestPermissions()

希望它会对你有所帮助。

答案 1 :(得分:0)

第三个参数是权限的requestCode, 你可以创造它不变 如下所示

private int STORAGE_PERMISSION_CODE = 23; //you can pass any code here
ActivityCompat.requestPermissions((Activity)mContext, new String[]{
    android.Manifest.permission.ACCESS_FINE_LOCATION}, STORAGE_PERMISSION_CODE); 

此参数用于与onRequestPermissionsResult方法的第一个参数的requestCode进行比较,同时覆盖它。

   @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        //Checking the request code of our request
        if (requestCode == STORAGE_PERMISSION_CODE) {

            //If permission is granted
            if (grantResults.length > 0 && grantResults[0] == 0) {

                //Displaying a toast
                Toast.makeText(context, "Permission granted now.", Toast.LENGTH_LONG).show();
            } else {
                //Displaying another toast if permission is not granted
               Toast.makeText(context, "Permission denied.",Toast.LENGTH_LONG).show();
            }
        }
    }