Play商店中有一个名为bodyweight fitness的应用没有任何权限。它也可以在git hub上使用: https://github.com/mazurio/bodyweight-fitness-android
我使用了git hub中的文件并使用 Android Studio 编译了apk(不更改文件)。当我尝试安装自编译应用程序apk时,它会告诉我它将使用INTERNET ,尽管Play商店应用程序没有。这个应用程序没有理由需要任何互联网连接。因此,我从 AndroidManifest.xml
中删除了这一行 <uses-permission android:name="android.permission.INTERNET" />
在编译和安装应用程序后,它仍然告诉我它将使用INTERNET。有人知道为什么以及如何删除此权限?
PS:我也问了开发人员,但我还没有回复。更新:
答案 0 :(得分:7)
每个android lib都包含包含包,权限,活动等的清单文件,因此您的应用程序将显示依赖项的所有权限。您可以在{projectDir} / {moduleDir} / build / outputs / logs / manifest-merger - * - report.txt
查看最终清单创建日志。此日志将包含类似
的内容uses-permission#android.permission.INTERNET
ADDED from {myModulePath}/app/src/main/AndroidManifest.xml:6:5-67
MERGED from [net.hockeyapp.android:HockeySDK:4.1.1] /Users/devindi/.android/build-cache/ce70c6f87efc05633a59a88fccdb712db509e22d/output/AndroidManifest.xml:12:5-67
MERGED from [com.crashlytics.sdk.android:crashlytics:2.6.8] /Users/devindi/.android/build-cache/424d420499b90aec0a26ab1b5f575e318d0342b9/output/AndroidManifest.xml:9:5-67
MERGED from [com.crashlytics.sdk.android:beta:1.2.5] /Users/devindi/.android/build-cache/be2498e53f6aa976b3927954da943b23f0a800f6/output/AndroidManifest.xml:9:5-67
MERGED from [com.crashlytics.sdk.android:crashlytics-core:2.3.17] /Users/devindi/.android/build-cache/e5b1b150113ac2f0789b76a886f379cdafa8af2b/output/AndroidManifest.xml:52:5-67
MERGED from [com.crashlytics.sdk.android:answers:1.3.13] /Users/devindi/.android/build-cache/c86f3a3daec296cb6a32deb0b3d0c3f1370a024f/output/AndroidManifest.xml:9:5-67
MERGED from [io.fabric.sdk.android:fabric:1.3.17] /Users/devindi/.android/build-cache/0a51b13dbc46dc870c598edab9d128bf8f26a8d4/output/AndroidManifest.xml:29:5-67
如您所见,我在我的清单和hockeyapp请求网络权限,crashlytics,fabric libs也请求相同的权限。 https://developer.android.com/studio/build/manifest-merge.html
要强行删除权限,只需将tools:node=”remove”
添加到您的权限声明中,如下所示:
<uses-permission android:name=”android.permission.INTERNET” tools:node=”remove” />
答案 1 :(得分:1)
这是因为INTERNET
权限是无害的&#34;允许。这意味着您不必向用户请求许可,并且它不会在Google Play商店中显示
自Android 5.0起,权限具有&#34;保护级别&#34;。有些是危险的,有些是正常的。正常意味着您作为应用开发者不必向用户请求许可,并且不会在Google Play中显示。危险意味着Google Play会显示它,并且您必须要求用户许可。
来源和进一步阅读:Android Developers
答案 2 :(得分:1)
通过Android Studio在开发过程中安装的应用程序,从APK安装的应用程序和从Google Play商店安装的应用程序之间存在差异。在后一种情况下会自动授予某些权限,例如Internet或在其他应用程序之上绘图。在规划部署策略时,您需要考虑到这一点。