如何给调试中的Android应用授予权限?

5

I have

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

我在清单中声明了这个条件,但尽管如此,我的代码追踪显示该条件未满足。

 if (ActivityCompat.checkSelfPermission(this,
                android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
                ActivityCompat.checkSelfPermission(this,
                        android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

true,即两个权限都没有被授予。

那么如何授予它们呢?

更新

我的应用程序逻辑假定不请求权限。 如果它们被授予,则它将按一种方式工作,如果它们未被授予,则它将在没有它们的情况下默默地工作。

因此,我需要像应用程序被安装并在安装期间授予权限一样对它们进行授予。

更新2

我怀疑答案在Android Studio Run/Debug 配置中。

例如,在调试时,我在控制台中看到以下行:

adb shell pm install -r "MYPATH"

我在这里看到,https://developer.android.com/studio/command-line/adb.html#pm,有一个选项 -g,表示“授予应用程序清单中列出的所有权限”。这就是我需要自动完成的。

5
https://developer.android.com/training/permissions/requesting.html#perm-request - CommonsWare
1个回答

12

我目前找到了以下解决方案,并且它可以工作:

在此输入图片描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接