是否可以动态请求Android权限?
问问题
6282 次
4 回答
5
Android M 引入了新的运行时权限模型,允许您执行此操作。
于 2015-09-30T11:46:13.060 回答
3
可以,如果设备运行 Android 6.0 或更高版本,并且您的应用的目标 SDK 为 23 或更高版本。
代码片段:
if(ContextCompat.checkSelfPermission(getApplicationContext(),Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.READ_PHONE_STATE}, 1);
}
int result = ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.READ_PHONE_STATE);
if (result == 0)
// function which uses the permission
}
于 2016-01-07T04:48:55.260 回答
0
从targetapi>22 android需要有运行时权限才能执行一些操作,下面是android中运行时请求权限的代码
//checking wether the permission is already granted
if(ContextCompat.checkSelfPermission(this,
Manifest.permission.READ_CONTACTS) ==PackageManager.PERMISSION_GRANTED){
// permission is already granted
}else{
//persmission is not granted yet
//Asking for permission
ActivityCompat.requestPermissions(this,new String[] {
Manifest.permission.READ_CONTACTS},REQUEST_CODE);
}
上面的代码用于请求读取联系人权限。同样,您也可以根据您的要求请求其他权限。有关更多详细信息,请参阅如何在 android 中请求运行时权限
于 2017-02-15T04:21:27.920 回答
-1
此解决方案针对 API < 23 的设备,对于 23 及以上,请参阅Aun答案。
虽然许多人会以“否”回答这个问题,并会告诉你这是一个安全风险,但我找到了一种方法!
看看ASTRO 文件管理器,它是 android 的著名文件管理器应用程序之一。它可以浏览您的 SD-CARD,显示您的图像、视频和最有趣的东西,它可以安装 APKs!
所以理论上,如果我创建了一个在安装期间不请求互联网访问的应用程序,我可以在我的 Raw 库中附加一个 APK 并在运行时安装它,并将我的所有权限放在那里。之后,只需一米的应用程序通信就很容易了。您可以使用广播或共享应用程序 ID 来执行此操作(首先阅读它可能有风险)
从用户体验来看,您似乎是在运行时请求权限。
于 2012-12-28T11:43:41.287 回答