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
,表示“授予应用程序清单中列出的所有权限”。这就是我需要自动完成的。