android - onRequestPermissionResult 的 switch case 需要常量表达式错误

标签 android android-permissions

我正在编写一个请求位置访问的简单代码

 private static int MY_PERMISSIONS_REQUEST_LOCATION = 99;

 public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
    myview = inflater.inflate(R.layout.add_device,container,false);

    // fragment manager for passing values
    final FragmentManager fragmentManager = getFragmentManager();

    // checking location permission and asking for permission
    int permissionCheck = ContextCompat.checkSelfPermission(getActivity(),
            Manifest.permission.ACCESS_FINE_LOCATION);
    if(permissionCheck != 0){
            ActivityCompat.requestPermissions(getActivity(),
                    new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
                    MY_PERMISSIONS_REQUEST_LOCATION);
    }

当我调用 onRequestPermissionsResult 函数并对请求代码应用 switch case 时,编译器显示错误“需要常量表达式”

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    switch(requestCode){
        case MY_PERMISSIONS_REQUEST_LOCATION: {
            if (grantResults.length > 0
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

                // permission was granted, yay! Do the
                // contacts-related task you need to do.

            } else {

                // permission denied, boo! Disable the
                // functionality that depends on this permission.
            }
            return;
        }
    }
}

可能是什么问题? 请注意 oncreateview 已完全复制到此处

最佳答案

使 MY_PERMISSIONS_REQUEST_LOCATION 最终化,您的问题将得到解决:

private static final int MY_PERMISSIONS_REQUEST_LOCATION = 99;

case 语句中,您必须始终具有最终值。

关于android - onRequestPermissionResult 的 switch case 需要常量表达式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48064999/

相关文章:

android - Delphi Android API 26 FileURIExposed

java - 如何在 Android (Java) 中使用 Esc Pos 打印图像

java - SQLite数据库读取错误 'no such file or directory '

java - 使用 PhoneStateListener 在 Marshmallow 中传入空号码

android - 滚动时在自定义 listView 中显示数据时出错

android - Firebase 远程配置安全

java - 询问倍数权限android 6.0

android - 如何在安卓平板电脑中隐藏底部系统栏

android - 在棉花糖中授予运行时权限后如何通知recyclerview适配器

android - 拒绝所有权限后无法继续