Android 当用户在Google Play中安装应用程序时,如何请求所需的所有权限?

Android 当用户在Google Play中安装应用程序时,如何请求所需的所有权限?,android,google-play,Android,Google Play,我有一个Android应用,但当用户点击“安装”按钮时,应用直接安装,没有提示请求用户直接接受的权限,所以我需要在运行时请求权限 但我需要做的是,当用户单击“安装”按钮时,在应用程序开始从Google Play下载之前请求所有所需的权限,如下图所示: 到目前为止,我的清单是这样的 <uses-feature android:name="android.hardware.camera" /> <uses-permission android:name="android.perm

我有一个Android应用,但当用户点击“安装”按钮时,应用直接安装,没有提示请求用户直接接受的权限,所以我需要在运行时请求权限

但我需要做的是,当用户单击“安装”按钮时,在应用程序开始从Google Play下载之前请求所有所需的权限,如下图所示:

到目前为止,我的清单是这样的

<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>


那么我需要添加什么才能实现这一点呢?

运行时权限是从5.0 Android开始引入的。 大多数用户在安装时没有读取权限的原因。 因此,所有最新的API都必须使用运行时权限。 即使是谷歌地图等默认应用程序也需要运行时权限


如果不想使用运行时权限,则必须使用旧的API版本。但是你必须检查一下。您的应用程序可能会崩溃。

对于具有android<6.0权限的设备,在安装时请求。 对于android>6.0的设备,在运行时请求权限

因此,如果您希望应用程序与6.0以下和6.0以上的设备兼容,则需要在Manifest.xml中声明权限,并在运行时请求权限


欢迎您将
targetSdkVersion
设置在23以下,这将在安装时强制请求权限

随着时间的推移,在安装时看到此权限对话框将向潜在用户发出信号,表明您的应用已过时,无法维护。因此,越来越多的潜在用户将选择不安装您的应用程序


另外,请记住,用户仍然可以通过设置应用程序删除您请求的权限。

为什么您认为此应用程序不会在运行时请求权限?在应用程序中,在运行期间,我没有收到任何请求权限的警报对话框。我有什么遗漏吗?我可以确保弹出对话框100%显示在Google Play中吗?因为当我安装我的应用程序时,它没有弹出对话框。