gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 00:11:28 24 4
gpt4 key购买 nike

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

 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com