我想在我的Android应用中添加访问文件和用户位置的权限。现在当用户打开我的应用程序时,它会询问权限,但如果用户拒绝它,我的应用程序由于手机中下载的图像而无法正常工作。它会产生不良影响。现在我想问一下,在下载我的应用程序(如ES文件资源管理器文件管理器)之前,我如何在Playstore中的应用程序中请求权限。如果用户否认他无法安装我的应用程序。
答案 0 :(得分:1)
您可以通过选择API22作为目标SDK
来实现如果设备运行的是Android 5.1或更低版本,或者您的应用的目标SDK为22或更低:如果您在清单中列出了危险权限,则用户必须在安装应用时授予权限;如果他们没有授予权限,系统根本不会安装应用程序。
但
注意:从Android 6.0(API级别23)开始,用户可以随时撤消任何应用的权限,即使该应用针对较低的API级别也是如此。无论您的应用针对哪种API级别,您都应该测试您的应用,以验证其在缺少所需权限时是否正常运行。
答案 1 :(得分:1)
来自:https://developer.android.com/training/permissions/requesting.html
如果设备运行的是Android 5.1或更低版本,或者您的应用的目标SDK为22或更低:如果您在清单中列出了危险权限,则用户必须在安装应用时授予权限;如果他们不授予权限,系统根本不会安装应用程序。
因此,我认为您可以将目标SDK和目标API设置为低于22,以便使用旧的权限系统。
答案 2 :(得分:1)
您必须在AndroidManifest.xml中添加一些使用权限。 像这样:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
//for file access
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
//for location access and updates
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES" />
</manifest>
添加这些权限后,您必须创建新版本构建并发布到发布商店。 注意:这些权限适用于低于23的API级别,但对于API 23或更高版本,您必须检查运行时权限(marshmallow和nougat),有关在运行时请求权限的更多信息,请通过此链接 - {{3 }}