美文网首页Android开发
Android manifest 删除权限

Android manifest 删除权限

作者: 邓浩发_1a14 | 来源:发表于2019-11-05 21:57 被阅读0次

    最近的项目中使用了一些第三方sdk,有些sdk申请了敏感权限,会弹框提示用户申请权限,对用户造成误导,而我们的项目实际上是不需要这些权限的,而且我们的产品受众对这些权限也比较敏感,因此,希望将这些权限删除。

    使用了万能的搜索引擎,知道了可以利用 tools:node="remove" 删除权限。这个做法开始还是好的。但是,某天我更新了第三方sdk后,这个方法不好使了,这个sdk的开发很厉害,利用gradle插件把这些权限又加上了,我只想说,mmp。我又去寻求万能的搜索引擎,总算找到了一个解决方案,就是在编译构建流程中,把这些权限删除。需要在项目主模块一般也叫app的build.gradle的末尾添加以下代码。

    project.afterEvaluate {
        project.android.applicationVariants.all { variant ->
            variant.outputs.each { output ->
                output.processResources.doFirst { pm ->
                    String manifestPath = output.processResources.manifestFile
                    def manifestContent = file(manifestPath).getText()
                    manifestContent = manifestContent.replace('<uses-permission android:name="android.permission.GET_TASKS"/>', '')
                    manifestContent = manifestContent.replace('<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>', '')
                    manifestContent = manifestContent.replace('<uses-permission android:name="android.permission.BLUETOOTH"/>', '')
                    manifestContent = manifestContent.replace('<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>', '')
                    manifestContent = manifestContent.replace('<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>', '')
                    manifestContent = manifestContent.replace('<uses-permission android:name="android.permission.READ_PHONE_STATE"/>', '')
                    manifestContent = manifestContent.replace('<uses-permission xmlns:tools="http://schemas.android.com/tools" android:name="android.permission.ACCESS_COARSE_LOCATION"/>', '')
                    manifestContent = manifestContent.replace('<uses-permission xmlns:tools="http://schemas.android.com/tools" android:name="android.permission.BLUETOOTH"/>', '')
                    println("manifestContent:" + manifestContent)
                    file(manifestPath).write(manifestContent)
                }
            }
        }
    }
    

    参考来源:

    https://juejin.im/post/5cb4a12d518825416139c554

    相关文章

      网友评论

        本文标题:Android manifest 删除权限

        本文链接:https://www.haomeiwen.com/subject/evtybctx.html