Android SDK 请求的权限与移除

Bugtags为了方便开发者重现问题,获取了若干系统权限。

这些权限,对于某些app或者用户来讲较为敏感。可以按照下面的方式进行裁剪。

Android Studio Gradle

Android Studio 在使用外部 library 的时候,有一套 manifest 的合并机制,官方也提供了 maker 工具进行修改合并规则。 假设需要移除 “android.permission.ACCESS_FINE_LOCATION” 权限,则可以在 app 的 AndroidManifest.xml 文件中,添加如下声明:

xmlns:tools=" 是需要添加的命名空间

<manifest
    package="com.bugtags.demo"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

tools:node="remove" 为删除标记

<uses-permission        
    android:name="android.permission.ACCESS_FINE_LOCATION"
    tools:node="remove">
</uses-permission>

Demo 参考

下载

Eclipse

在 Eclipse 中,可以修改 Bugtags-Android-Eclipse-Lib 中的 AndroidManifest.xml 的权限请求列表,达到移除的结果。

所有请求的权限介绍及其移除结果

获取所处的位置,方便和准确定位和重现问题;移除将无法显示位置

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

上传网络权限;移除将无法上传问题与crash

<uses-permission android:name="android.permission.INTERNET"/>

WIFI状态权限,有助于分析问题;移除将无法获取WiFi与网络状态

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

为了问题数据完好记录和上传,需要本地存储读写权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

读取console log,帮助分析问题-;移除将无法读取控制台日志

<uses-permission android:name="android.permission.READ_LOGS"/>

悬浮小球;移除将无法显示小球

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>