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