如何授予已调试 android 应用程序的权限?
How to grant permissions to debugged android application?
我有
<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 configurations
中的某个地方。
例如,我在调试时在控制台中看到以下行
adb shell pm install -r "MYPATH"
而且我在这里 https://developer.android.com/studio/command-line/adb.html#pm 看到有一个选项 -g
说 "Grant all permissions listed in the app manifest"。
这是我需要自动发生的事情。
目前我找到了以下解决方案并且有效
我有
<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 configurations
中的某个地方。
例如,我在调试时在控制台中看到以下行
adb shell pm install -r "MYPATH"
而且我在这里 https://developer.android.com/studio/command-line/adb.html#pm 看到有一个选项 -g
说 "Grant all permissions listed in the app manifest"。
这是我需要自动发生的事情。
目前我找到了以下解决方案并且有效