Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cordova Android应用程序和用户权限_Android_Cordova_Permissions_Gps - Fatal编程技术网

Cordova Android应用程序和用户权限

Cordova Android应用程序和用户权限,android,cordova,permissions,gps,Android,Cordova,Permissions,Gps,我有一个Android Cordova应用程序,我正在使用GPS,检查网络状态,在文档文件夹上读/写,并拍照。这里是我对清单XML文件的权限: <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-featu

我有一个Android Cordova应用程序,我正在使用GPS,检查网络状态,在文档文件夹上读/写,并拍照。这里是我对清单XML文件的权限:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.location.gps" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

清单文件由Cordova框架自动生成。由于某些原因,我看不到相机权限。权限不再在安装时被询问(这是从Android 6开始的),而是应该在使用前被询问。 我正确地获得了GPS访问权限弹出窗口,但没有读取/写入文档文件夹权限。我也从来没有得到过相机的许可,尽管我可以在没有得到许可的情况下使用它。网络状态权限的情况相同(从未被询问)

我发现Android权限方案非常混乱,在应用程序管理器下,我的应用程序获得了预期的位置和存储,但缺少摄像头和网络状态

总而言之,在应用程序内部,在实际代码中,我至少使用过一次这些设备

  • GPS细粒度
  • GPS粗略(可能是Wifi SSID三角测量技巧)
  • 写在文件上
  • 阅读文件
  • 读取网络状态(离线/Wifi/3G等)
  • 用照相机拍照
Cordova framework编写了此清单文件:

  • android.permission.ACCESS\u位置
  • android.permission.ACCESS\u FINE\u位置
  • android.hardware.location.gps(为什么它不是一个.permission?)
  • android.permission.ACCESS\u网络\u状态
  • android.permission.WRITE\u外部存储
在application manager上,我可以获得以下选项:

  • 位置
  • 储藏
所以基本上我得到了三组不同的权限:-(

我在您在评论中提到的


因此,不知何故,
我不明白你的问题是什么。拥有三套不同的权限有什么错。你可以使用你需要的权限,如果它们是关键权限,你需要检查它们是否被授予你,如果不要求用户授予权限。我的问题是,我看到的权限列表不一致在三个不同的位置上显示:我的代码、清单文件、应用程序设置UI…理想情况下,如果在我的代码上使用摄像头,那么我应该在清单文件上看到摄像头权限,在应用程序设置UI上看到摄像头权限。代码中的任何其他设备(GPS、摄像头、网络、文件系统等)也有相同的情况(在config.xml文件中)您声明了所需的权限,并且在构建应用程序时,所有清单文件都会合并,因此,如果您使用某些库和第三方工具,则它们所需的权限会与您的权限一起合并到单个清单文件中。关于应用程序设置UI和清单中的不同显示:这是因为在UI中y需要对所有用户进行自我解释,其中大多数用户不是程序员,这并不意味着他们与您在清单中添加的内容不同,只是演示不同。好吧,这很好,但为什么我在UI上看不到“摄像头”权限?我在应用程序上使用摄像头…在UI上我只看到“位置”和“存储”您在发布的清单权限中没有
camera
权限。如果是您的
merged manifest
,我不明白您如何访问摄像头。可能是因为您的手机是根设备(只是猜测)?尽管这听起来对根设备也不合适。