如何授予已调试的Android应用程序权限?

Dim*_*ims 3 debugging android geolocation android-permissions

我有

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Run Code Online (Sandbox Code Playgroud)

在我的清单中,但是尽管如此,我的代码跟踪还是表明了这种情况

 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) {
Run Code Online (Sandbox Code Playgroud)

true,即未授予两个权限。

那么如何授予他们呢?

更新

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

因此,我需要授予它们就像安装了应用程序一样,并且在安装过程中授予了权限。

更新2

我怀疑答案是什么地方Run/Debug configurationsAndroid Studio

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

adb shell pm install -r "MYPATH"
Run Code Online (Sandbox Code Playgroud)

而且我还在这里https://developer.android.com/studio/command-line/adb.html#pm看到,有一个选项可以-g说“授予应用清单中列出的所有权限”。

这就是我需要自动发生的事情。

Dim*_*ims 6

目前,我找到了以下解决方案,它可以正常工作

在此处输入图片说明