Android Java无法在片段中显示requestPermission
Posted
技术标签:
【中文标题】Android Java无法在片段中显示requestPermission【英文标题】:Android Java Can't display requestPermission in fragment 【发布时间】: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();
);
【问题讨论】:
查看此链接:***.com/questions/40760625/… 【参考方案1】:首先我想指出一个错字: 获取当前位置();
除此之外:
这可能是您的上下文吗?我的意思是,如果问题只是拼写错误,那么这完全无关紧要,因此请先修复它。
getApplicationContext() 引用整个应用程序上下文。 另一种方法是 getContext(),它指的是您所在的特定视图。
我正在阅读它并发现了一些可能有用的信息。 https://developer.android.com/training/permissions/requesting //你需要在上下文中请求的部分。
然后我读到这个: Difference between getContext() , getApplicationContext() , getBaseContext() and "this"
由于您在片段中,您可能需要在片段中请求权限。
【讨论】:
以上是关于Android Java无法在片段中显示requestPermission的主要内容,如果未能解决你的问题,请参考以下文章
在 Android 片段中获取 Java.Lang.NullPointerException
java 将循环显示和不显示过渡动画添加到Android片段