【问题标题】:Android Java Can't display requestPermission in fragmentAndroid Java无法在片段中显示requestPermission
【发布时间】:2020-12-29 10:50:14
【问题描述】:

我用大量日志测试了我的应用程序,似乎我的应用程序卡在了 ActivityCompat.requestPermissions 并且没有显示任何消息。我认为问题可能出在 getActivity() 因为我在 Fragment 中。

@Override
public void onViewCreated(@NonNull final View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    result = view.findViewById(R.id.tab3Result);
    progressBar = view.findViewById(R.id.tab3ProgressBar);
    view.findViewById(R.id.tab3GetLocation).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (ContextCompat.checkSelfPermission(getActivity().getApplicationContext(),
                    Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_DENIED) {
                ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_CODE_LOCATION_PERMISSION);
            } else {
                getCurrentLocaiton();
            }
        }
    });
}

【问题讨论】:

标签: java android android-studio android-permissions android-location


【解决方案1】:

首先我想指出一个错字: 获取当前位置();

除此之外:

这可能是您的上下文吗?我的意思是,如果问题只是拼写错误,那么这完全无关紧要,因此请先修复它。

getApplicationContext() 引用整个应用程序上下文。
另一种方法是 getContext(),它指的是您所在的特定视图。

我正在阅读它并发现了一些可能有用的信息。 https://developer.android.com/training/permissions/requesting //你需要在上下文中请求的部分。

然后我读到这个: Difference between getContext() , getApplicationContext() , getBaseContext() and "this"

由于您在片段中,您可能需要在片段中请求权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-22
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    • 2021-11-04
    • 1970-01-01
    • 2015-07-19
    相关资源
    最近更新 更多