React-native:- 位置权限对话框不起作用

Posted

技术标签:

【中文标题】React-native:- 位置权限对话框不起作用【英文标题】:React-native:- Location permission dialog is not working 【发布时间】:2019-05-13 15:51:03 【问题描述】:

我想启用我的设备的位置(android pie)。我已经阅读了 react-native 权限的文档,然后尝试实现它,但每次它都说“位置权限被拒绝”。我什至尝试使用外部库(react-native-permissions)然后它说:-“未确定:尚未提示用户使用权限对话框”。我也在清单中给出了权限(FINE_LOCATION 和 COARSE_LOCATION)。我什至尝试在应用程序权限中手动授予权限,但仍然显示权限被拒绝。如何启用位置信息。

代码如下:

async requestLocationPermission() 
try 
  const granted = await PermissionsAndroid.request(
    PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
    
      title: "Example App",
      message: "Example App access to your location "
    
  );
  if (granted === PermissionsAndroid.RESULTS.GRANTED) 
    console.log("You can use the location");
    alert("You can use the location");
   else 
    console.log("location permission denied");
    alert("Location permission denied");
  
 catch (err) 
  console.warn(err);


在 componentDidMount 中调用它:

componentDidMount()
this.requestLocationPermission();

【问题讨论】:

targetSdkVersion 里面的android/app/build.gradle 是什么? 28 targetSdkVersion...buidtoolVersion 是 28.0.3 【参考方案1】:

我也是这样做的。在 AndroidManifest.xml 文件中添加了 FINE_LOCATION 和 COARSE_LOCATION。并像你一样编写上面的代码sn-p。

然后我也收到了位置权限被拒绝消息。

然后我打开了 AndroidStudio 并进行了清理和构建。 从模拟器中删除应用程序并重新运行它,react-native run-android 然后位置权限对话框来了。

【讨论】:

你也可以用这个命令清理它:cd android && ./gradlew clean【参考方案2】:

我知道这听起来有点奇怪......

尝试打开 Google 地图。有时会出现该对话框。

从字面上看,这就是我的答案!

【讨论】:

【参考方案3】:

您使用的是模拟器吗,定位服务在 Android 模拟器上根本不起作用,这与模拟它的 ios 不同。

安装“react-native-device-info”并在使用定位服务之前检查它是否是安卓模拟器

【讨论】:

【参考方案4】:

应用权限方法后,如果您看到类似“位置权限被拒绝”之类的消息,或者您无法看到权限对话框。。然后重置您授予的权限。

1.如果您使用的是模拟器:为此,在命令提示符下在当前项目目录路径中运行 cmd:运行:“adb shell pm reset-permissions "

2.如果您正在使用您的设备,则拒绝设置所有权限。

这将重置您所有给定的权限。之后,在我的情况下,我可以看到权限对话框并能够自行允许或拒绝权限。

【讨论】:

以上是关于React-native:- 位置权限对话框不起作用的主要内容,如果未能解决你的问题,请参考以下文章

React-native - Firebase onAuthStateChanged 无法正常工作

React-Native 和 Detox:无法关闭位置弹出窗口

使用dwr后,javaweb设置的session超时失效,web.xml和tomcat设置都不起作

react-native:无法使用发布模式访问Android权限

React Native - 启动应用程序后的权限对话框 - “远程”不起作用

react-native 的 Chrome 调试不起作用