Android Wear应用说它需要我的清单中没有的权限

时间:2015-10-27 05:33:08

标签: android wear-os android-permissions android-6.0-marshmallow

我制作的表盘很快就会计划发布,但是我很难在可移动方面安装可穿戴组件(有点重要:p)。这是我手表中的堆栈跟踪的一部分,当我将带有嵌入式可穿戴apk的已签名apk安装到运行Android Marshmallow的Nexus 5X上时,我正在进行测试:

10-13 20:43:50.293    2279-8109/? I/PkgMgrInstallUtil﹕ Sending install intent to PackageInstaller Intent { act=android.intent.action.INSTALL_PACKAGE dat=content://com.google.android.clockwork.home.provider/host/com.twintitanium.watchfaces.cardswatchface/wearable/com.twintitanium.watchfaces.cardswatchface/apk typ=vnd.android.cursor.item/wearable_apk cmp=com.android.packageinstaller/.wear.WearPackageInstallerService (has extras) } forcom.twintitanium.watchfaces.cardswatchface
10-13 20:43:51.168    7981-8110/? W/WearPkgInstallerService﹕ Wearable com.twintitanium.watchfaces.cardswatchface has a permission "android.permission.WRITE_EXTERNAL_STORAGE" that is not granted in the host application.
10-13 20:43:51.168    7981-8110/? W/WearPkgInstallerService﹕ Wearable com.twintitanium.watchfaces.cardswatchface has a permission "android.permission.READ_EXTERNAL_STORAGE" that is not granted in the host application.
10-13 20:43:51.168    7981-8110/? W/WearPkgInstallerService﹕ Wearable com.twintitanium.watchfaces.cardswatchface has a permission "android.permission.GET_ACCOUNTS" that is not granted in the host application.

事实上,如果我在设置下访问手机上已安装的应用程序(卡片观看面部),我会看到2个权限,即联系人和存储空间被禁用。

似乎很容易解释,除了我的可穿戴清单中没有任何这些权限 - 我只有" com.google.android.permission.PROVIDE_BACKGROUND"和" android.permission.WAKE_LOCK,"因为它们是表盘所必需的。如果我尝试将这些权限添加到我的移动和可穿戴清单中,它仍然会出现相同的错误。

这是一个新问题,因为我在Play商店中有一个测试版,但后来我更新到API 23.可能导致这个问题?

1 个答案:

答案 0 :(得分:1)

检查build.gradle文件:如果您对'com.google.android.gms:play-services:8.1.0'有依赖关系,那么它显然会隐式添加自Google Play Services 7.5以来的权限(在本例中为“联系人”和“存储”)。将该依赖关系更改为特定组件'com.google.android.gms:play-services-wearable:8.1.0'将取消这些权限(并使您的apk更小,因为它不会包含它不使用的库)。