代码之家  ›  专栏  ›  技术社区  ›  Nicola Gallazzi

调用RequiresPermission注释方法时缺少权限提示

  •  2
  • Nicola Gallazzi  · 技术社区  · 7 年前

    我正在开发一个小的SDK,它必须通过.aar文件包含在项目中。在这个SDK中,我有一个方法定义如下:

    /**
         * Sends an "open lock" request for the bike, with the ble name provided as param. Requires ACCESS_FINE_LOCATION and
         * BLUETOOTH permission
         *
         * @param bikeBleName The BLE name of the searched bike, normally starts with 'BS' prefix
         * @param listener   Listener for the operation state, returns success or an error string with the detailed error
    
         */
        @RequiresPermission(allOf = [Manifest.permission.BLUETOOTH, Manifest.permission.ACCESS_FINE_LOCATION])
        override fun startRent(bikeBleName: String, bikeMode: BikeMode, listener: StartRentListener) {
            GlobalScope.launch {
                startRentManager.startRent(bikeBleName, bikeMode, listener)
            }
        }
    

    如您所见,该方法用注释 @RequiresPermission(allOf = [Manifest.permission.BLUETOOTH, Manifest.permission.ACCESS_FINE_LOCATION]) 但是,如果我从我的ProjectMainActivity调用该方法,android studio会告诉我该方法需要权限检查,但它不会告诉我需要哪些权限。 我想获得的是android studio告诉我“这个方法需要访问\u fine\u位置和蓝牙权限”,类似下面的屏幕截图。我怎样才能做到?谢谢

    enter image description here

    库模块的清单文件是:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              package="it.zehus.bikeaccesssdk">
        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
        <uses-permission android:name="android.permission.BLUETOOTH"/>
    </manifest>
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Nicola Gallazzi    7 年前

    问题是我放了

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              package="it.zehus.bikeaccesssdk">
        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
        <uses-permission android:name="android.permission.BLUETOOTH"/>
    </manifest>
    

    在库模块中。我从库清单中删除了权限,现在Android Studio提供了正确的提示。